2

私は WCF サービスを稼働させていますが、今日、実際のアドレスから .svc 拡張子を削除して、この方法でサービスにアクセスするとどうなるでしょうか? net.tcp://serveraddress/services/service I ですが、構成ファイルを変更するとすぐにプログラムが起動しませんでした。このプログラムとサービスは .NET 4.0 を使用して開発されており、WCF 4 広告サービス自体は IIS 7.5 でホストされています。

IIS でホストされている間、この方法でサービスにアクセスすることは可能ですか?

4

2 に答える 2

1

svc ファイルなしで WCF サービスをホストしました。Global.asax ファイルの Application_Start メソッドで ServiceRoute を RouteTable に追加しています。

protected void Application_Start(object sender, EventArgs e)
{
    RouteTable.Routes.Add(new ServiceRoute("AdminDataService", new WebServiceHostFactory(), typeof(AdminService)));
    RouteTable.Routes.Add(new ServiceRoute("AuthenticationService", new WebServiceHostFactory(), typeof(AuthenticationService)));
}
于 2014-09-01T10:21:43.743 に答える
1

これは、IIS のハンドラーの問題である可能性があります。また、拡張子のない WCF サービスも使用しており、web.config ファイルを変更して機能させました。これを web.config に追加して、役立つかどうかを確認します。

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <remove name="UrlRoutingModule" />
  <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>

<handlers> 
<remove name="svc-Integrated-4.0" />
<add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
      <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> 
</system.webServer>
于 2012-10-04T19:12:38.697 に答える