您好,非常感謝您的閱讀。IIS 7.5中的REST/SOAP端點的WCF 4服務
我想獲得一個服務託管在IIS 7.5,有多個端點公開。
我有一種感覺問題在於我的web.config,但我會在這裏發佈我的服務代碼。沒有接口文件,因爲我使用WCF 4的新功能,也沒有.svc文件。
根據我的理解,所有的路由都使用RouteTable功能在Global.asax.cs中處理。
無論如何,到代碼/配置 -
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
// NOTE: If the service is renamed, remember to update the global.asax.cs file
public class Service1
{
// TODO: Implement the collection resource that will contain the SampleItem instances
[WebGet(UriTemplate = "HelloWorld")]
public string HelloWorld()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
return "Hello World!";
}
}
而現在,配置和我認爲需要作出(我不知道如果我需要保持standardEndpoints阻塞的變化,但有或沒有它,我仍然得到錯誤信息 -
<services>
<service name="AiSynthDocSvc.Service1" behaviorConfiguration="HttpGetMetadata">
<endpoint name="rest"
address=""
binding="webHttpBinding"
contract="AiSynthDocSvc.Service1"
behaviorConfiguration="REST" />
<endpoint name="soap"
address="soap"
binding="basicHttpBinding"
contract="AiSynthDocSvc.Service1" />
<endpoint name="mex"
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="REST">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="HttpGetMetadata">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
的的Global.asax.cs文件被單獨留在家中
再次我敢肯定它是與我的配置。 Ť當我嘗試訪問任何定義的端點時,他遇到的錯誤是 -
''處的端點沒有與無消息版本的綁定。 'System.ServiceModel.Description.WebHttpBehavior'僅用於WebHttpBinding或類似的綁定。
任何人對此有任何意見?
感謝,
扎卡里·卡特
你用什麼URL來訪問你的服務? – 2011-04-13 15:49:45
另外:你說你沒有* .svc文件 - 你的服務如何激活呢?您可能需要* .svc文件,或者您需要在配置文件中添加標籤。 –
2011-04-13 15:50:51
該服務被部署到端口80上的默認網站,因此它只是 - http:// localhost/WebApp/ServiceName來訪問它。另外,在沒有.svc文件的情況下創建服務的功能是.NET 4.0中的一項新功能。不是擊中svc文件,而是添加了一個新類,以將請求正確路由到相應的服務。 – 2011-04-13 16:58:59