現在、WPFアプリケーション内からいくつかのWebサービスをホストしています。また、自動ヘルプページを有効にしてサービスマニュアルを簡素化しました。 OperationContract
には、メソッドに関する情報を含むDescription
属性が付いています。タスクベースのWCFサービスのヘルプの説明がありません
ただし、私のヘルプページを見るときは、戻り値の型がvoid
のメソッドだけが正しくDescription
という属性をここに表示することに気付きました。 Task
またはTask<t>
を返すメソッドは、 "Service at localhost:XXXXX/ServiceEndpoint"としか記述しません。
このパターンはIPCで使用されているため、非同期操作規約に多く依存しているため、ほとんどはTask
またはTask<t>
を返します。ヘルプが正しく表示されるようにこの問題を解決する方法はありますか?ここで
namespace App
{
[ServiceContract]
public interface IMainService
{
[OperationContract]
[WebGet(UriTemplate = "visibility")]
[Description("Gets the main window visibility.")]
Task<bool> GetVisibilityAsync();
[OperationContract]
[WebInvoke(UriTemplate = "visibility", Method = "PUT")]
[Description("Sets the main window visibility.")]
Task SetVisibilityAsync(bool isVisible);
[OperationContract]
[WebInvoke(UriTemplate = "menu", Method = "PUT")]
[Description("Navigates to the main menu.")]
void NavigateToMainMenu();
[OperationContract]
[WebInvoke(UriTemplate = "shutdown", Method = "PUT")]
[Description("Requests the application to shutdown.")]
void RequestApplicationShutdown();
}
}
私のapp.configは
<system.web>
<compilation debug="false" targetFramework="4.5" />
</system.web>
<system.serviceModel>
<services>
<service name="App.MainService" behaviorConfiguration="rpcServiceBehavior">
<endpoint binding="webHttpBinding"
contract="App.IMainService"
behaviorConfiguration="webHttpBehavior"
name="RpcEndpoint"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:25565/main"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="rpcServiceBehavior" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>