2011-03-06 50 views

回答

1

是肯定的 - 這主人自己NT服務裏面,在你的app.config,定義一個http基地址。您在您的服務合同所定義的URI模板將關閉該基地地址:

<services> 
    <service name="YourNamespace.YourServiceClass"> 
     <host> 
     <baseAddresses> 
      <add baseAddress="http://YourServer:9091/Services/" /> 
     </baseAddresses> 
     </host> 
     <endpoint address="" 
       binding="webHttpBinding" 
       contract="YourNamespace.IYourService" />  
    </service> 
</services> 

那麼你的URI模板將被添加到該基址的,所以在這種情況下,你GetFoo方法將在可調用:

http://YourServer:9091/Services/foo/42 

更新:我只是重新此這裏,問題是這樣的:你的URI模板定義了一個名爲{id}參數,但在應用此URI模板的方法沒有任何參數調用id在它的參數列表:

[WebGet(UriTemplate = "foo/{id}")] 
public string GetFoo(string fooID) 

您需要確保這些事情匹配!在給定的URI模板,你需要你的方法聲明更改爲:

[WebGet(UriTemplate = "foo/{id}")] 
public string GetFoo(string id) 

(見參數 - 它的名字現在是id),然後你應該罰款 - 至少它工作得很好,對我來說。

+0

我試過這個,但它仍然沒有使用我自定義的WebGet UriTemp。只有當我通過F5 Visual Studio Debug在IIS中託管服務DLL或沒有Windows服務時。我認爲使它適用於IIS的設置是: ' – 2011-03-06 15:44:57

+0

我使用VS2010和C#通過所需的方式 – 2011-03-06 15:56:45

+0

@wcf大師:更新了我的答案 - 我希望是這樣的問題 - 至少現在適用於我。 – 2011-03-06 16:19:13

相關問題