2010-11-11 50 views
4

我遇到了將.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

回答

4

我認爲圍繞這​​個原因的原因是卡西尼網絡主機是一個32位應用程序,因此您不能在同一個進程中共享x64和x86運行時。

對於IIS,您是否在自己的應用程序池中運行它?再次,應用程序池可能會與32位應用程序共享,這會阻止您運行x64進程。如果您將您的虛擬目錄與新的應用程序池相關聯,則該過程應該加載正常。

0

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