1

我创建了一个启用路由的简单休息服务。当我在本地运行路由时,即使用 asp.net 开发服务器,路由工作正常。但是当我在 IIS(IIS 7.5)中部署应用程序并尝试访问服务中的方法时,我收到错误HTTP 404.0 Not found。这是我的代码:

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class HelloWorldService
{

    [WebGet(UriTemplate = "Date")]
    public DateTime Date()
    {
        return System.DateTime.Now;
    }

}

全球.asax:

    protected void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes();
    }
    private void RegisterRoutes()
    {           
        RouteTable.Routes.Add(new ServiceRoute("ServiceData", new WebServiceHostFactory(), typeof(HelloWorldService)));
    }

网络配置:

<configuration>
<system.web>
    <compilation debug="true" targetFramework="4.0" />
</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>

我还在下启用了 HTTP 重定向功能

Windows 功能 -> Internet 信息服务 -> 万维网服务 -> 通用 HTTP 功能

我也尝试添加处理程序,如

<handlers>
  <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, 
       Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>

我也尝试了网上建议的所有其他解决方案,但没有任何效果。提前感谢您的帮助。

4

1 回答 1

0

您的 RegisterRoutes() 有问题。它应该是:

 private void RegisterRoutes()
    {
        // Edit the base address of Service1 by replacing the "Service1" string below
        RouteTable.Routes.Add(new ServiceRoute("HelloWorldService", new WebServiceHostFactory(), typeof(HelloWorldService)));
    }

在此处输入图像描述

于 2013-01-11T07:38:38.140 回答