1
我創建了一個簡單的WCF服務應用程序,並嘗試更改WCF代碼,它也將能夠從客戶端瀏覽器中調用,但它只能成功從WCF運行客戶。無法從瀏覽器運行WCF方法
從瀏覽器運行,不調用WCF服務(但在瀏覽器中沒有錯誤消息)。
代碼:
合同:
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet]
string Test();
[OperationContract]
[WebGet]
string GetData(int value);
}
實現:
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public string Test()
{
return "test success";
}
}
Web.config文件:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="webHttpBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
項目網址:
http://localhost:1507/
瀏覽器URL行 - 測試方法:
http://localhost:1507/Service1.svc/Test
感謝。
你是什麼意思「從瀏覽器運行」?運行什麼? 'Test'是一個操作,而不是一個URL。你不能用GET調用它。這不是WCF的限制,這正是(SOAP)Web服務的工作原理。也許您是否將Web服務與REST API混淆? –
因爲WCF服務從本地主機運行,我從本地瀏覽器運行「http:// localhost:1507/Service1.svc/Test」行。 –
我將綁定更改爲binding =「webHttpBinding」,它將使用REST API運行。 –