[英]WCF - call same service from client and server side
我有一個簡單的WCF服務,可以通過服務引用從后面的代碼中調用服務器端。 它用於驗證和工作,並且由Visual Studio自動設置,並且我認為使用SOAP是因為綁定是wsHttpBinding。
我想使用相同的WCF服務,但使用ajax()從jQuery稱為客戶端。 我正在嘗試通過這些說明來實現它。
但是,如果我進行了更改以使客戶端調用能夠正常工作,則必須添加修飾符,在該修飾符之下,我認為這將破壞服務器端的作用,並更改web.config中的system.serviceModel部分。
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json,
RequestFormat= WebMessageFormat.Json) ]
我如何擁有可以從服務器端和客戶端(jQuery / ajax)調用的WCF服務?
或者換種說法,這可能是措辭不正確,端點可以有多個綁定嗎?
WCF中的端點具有ABC
因此,因此:不,單個端點不能具有多個綁定。 但是同一合約可以有多個端點!
因此,如果要通過SOAP和REST公開具有基本相同功能的兩個方法,則需要具有兩個端點。
您可以定義自己的服務方法,以使其可以從SOAP和REST調用,如您所提到的鏈接所示。
然后,您需要兩個單獨的端點:
<services>
<service name="YourService">
<endpoint
address="http://YourServer/YourVirtualDir/YourService.svc"
binding="wsHttpBinding"
contract="IYourService" />
<endpoint
address="http://YourServer/YourVirtualDir/YourService2.svc"
binding="webHttpBinding"
behaviorConfiguration="webCallable"
contract="IYourService" />
</service>
</services>
您必須定義一個包含<webHttp/>
行為的終結點行為-或者您需要具有一個* .svc文件,該文件使用WebServiceHost
(而不是普通的ServiceHost
)來承載REST服務。
如您所見,您現在有兩個單獨的終結點(虛擬目錄中有兩個單獨的* .svc文件),兩個單獨的地址-但它們共享相同的協定(定義相同的操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.