是否有其他方法可以在IIS集成的应用程序池中运行我的WCF 3.5 Rest API?
这是事件查看器中的消息:
在应用程序中进行了映射到aspnet_isapi.dll的请求 池在集成.NET模式下运行。 Aspnet_isapi.dll只能是 在Classic .NET模式下运行时使用。请指定 前提=" ISAPImode"在处理程序映射上使其仅在运行中 在Classic .NET模式下运行的应用程序池,或移动 应用程序到以Classic .NET模式运行的另一个应用程序池 为了使用这个处理程序映射。
这里是system.webServer > handlers
下的web.config中的处理程序条目:
<add name="svc-ISAPI-2.0_64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="" />
答案 0 :(得分:1)
您可以尝试将处理程序注册更改为以下其中一项:
<add name="svc-Integrated" path="*.svc" verb="*"
type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
preCondition="integratedMode,runtimeVersionv2.0" />
<add name="svc-Integrated-4.0" path="*.svc" verb="*"
type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
preCondition="integratedMode,runtimeVersionv4.0" />
使用哪个ono取决于Application Pool
上设置的.Net Framework版本。根据您现有的处理程序注册,第一个应该是正确的。