我目前正在WPF应用程序中托管一些Web服务。我还启用了自动帮助页面来简化服务文档。每个OperationContract
都使用Description
属性进行修饰,其中包含有关该方法的信息。
但是,每当我查看帮助页面时,我都会发现只有返回类型为void
的方法才会在此处正确显示其Description
属性。返回Task
或Task<t>
的方法只会说“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>
答案 0 :(得分:0)
尝试使用其他浏览器进行调试(或以隐身模式进行调试)。
解释:
这是因为您可能添加了一些说明,并在浏览器中进行了检查。然后你添加了更多的描述标签并在你的浏览器上再次检查它,而不是重新加载页面,在缓存中打开一个。浏览器将在缓存中的浏览器中打开页面,而不是在页面静止时重新加载它。