将.NET 4 WCF服务定位为64位的问题

问题描述:

我遇到了将.NET 4 WCF服务定位为64位的问题。我走在64位Vista操作系统下面的步骤:将.NET 4 WCF服务定位为64位的问题

在Visual Studio 2010

更改目标平台到x64创建一个新的WCF服务项目。

完成此操作后,我的WCF服务将不再运行在Cassini或IIS中。需要注意的是,采取这些相同的操作并将.NET 3.5定位为一切正常。该项目没有问题。任何帮助非常感谢。我在加载服务时收到的错误是:

(我不是在寻找答案“编译为任何CPU”,我更感兴趣知道为什么会发生这种情况。:-))

'/'应用程序中的服务器错误。 找不到类型'WcfService3.Service1',作为ServiceHost指令中的Service属性值提供,或者在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中提供。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.InvalidOperationException:无法找到作为ServiceHost指令中的Service属性值提供的或在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中提供的类型“WcfService3.Service1”。

源错误:

在当前web请求的执行过程中生成未处理的异常。关于异常的来源和位置的信息可以使用下面的异常堆栈跟踪来标识。

堆栈跟踪:

[InvalidOperationException异常:类型“WcfService3.Service1”,作为服务提供属性在ServiceHost的指令值,或在配置元件system.serviceModel/serviceHostingEnvironment/serviceActivations提供找不到] System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串constructorString,乌里[] baseAddresses)51902 System.ServiceModel.HostingManager.CreateService(字符串normalizedVirtualPath)1440 System.ServiceModel.HostingManager.ActivateService(字符串normalizedVirtualPath)+ 44 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)+615

[ServiceActivationException:由于编译期间出现异常,无法激活服务'/Service1.svc'。异常消息是:类型'WcfService3.Service1',作为ServiceHost指令中的Service属性值提供,或者在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中提供,无法找到..] System.Runtime.AsyncResult .END(IAsyncResult的结果)679246 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的结果)190 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication的上下文中,字符串routeServiceVirtualPath,布尔flowContext,布尔ensureWFService)234 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender,EventArgs e)+355 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+148 System.Web。HttpApplication.ExecuteStep(IExecutionStep步骤,布尔&已同步完成)+75

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1

我认为围绕这​​个原因的原因是卡西尼网络主机是一个32位应用程序,因此您不能在同一个进程*享x64和x86运行时。

对于IIS,您是否在自己的应用程序池中运行它?再次,应用程序池可能会与32位应用程序共享,这会阻止您运行x64进程。如果您将您的虚拟目录与新的应用程序池相关联,则该过程应该加载正常。

作为服务属性值在ServiceHost指令中提供,或者在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中找不到。