我使用net framework 4和IIS 6创建了一个wcf Rest服务。我在全局asa中使用路由表。 它在我的电脑上工作正常。当我 在Qa中安装服务不起作用。
申请服务时,我收到404 错误。
问题是IIS的ISAPI过滤器无法在请求和代码之间进行映射。
为IIS应用程序创建单独的池。 请指教。
网络配置
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<trust level="Full" originUrl="" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>
的Global.asa
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private void RegisterRoutes()
{
WebServiceHostFactory factory = new WebServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("Data", factory, typeof(DataHandler)));
RouteTable.Routes.Add(new ServiceRoute("UserData", factory, typeof(UserData)));
RouteTable.Routes.Add(new ServiceRoute("SetupData", factory, typeof(SetupData)));
}
答案 0 :(得分:1)
如果您要在IIS 6中使用路由,则需要对路由进行一些特殊考虑。 Here is an article走过它们。如果你还没有照顾好这些东西,当你尝试使用你的路线时,你会得到404.