2010-06-16 32 views

回答

5

最重要的問題尚未問:爲什麼你認爲你想做的事這個。

大多數問這個問題的人都覺得名字空間與部署服務的URL有關。他們完全沒有任何關係。事實上,命名空間可能是一個URI,如「urn:services.yourcompany.com」,這顯然不是互聯網上的一個位置。

+0

謝謝,但我卡住了,因爲Web服務使用者已經爲此配置。我們有1個QA設置和另一個設置Prod。我希望能夠完全刪除它,但爲了以防萬一,正在尋找一種更好的方式來處理這個問題,而不是改變代碼並重新編譯。如果這是不可能的,那麼我會有更多的彈藥去除它。 – Jim 2010-06-28 12:25:06

+2

@Jim:你應該將他們指向這個問題。他們犯了一個嚴重的錯誤。不明白命名空間。它們並不意味着在一個環境與另一個環境之間改變。他們不是在互聯網上的位置。 – 2010-06-28 13:41:51

+0

謝謝,這就是我所需要的。 – Jim 2010-06-28 15:54:56

0

你有試過嗎?

<Services> 
    <asp:ServiceReference 
     path="https://ourservice" /> 
    </Services> 

另一個選項可能是在web.config文件中創建對並使用ConfigurationManager類讀取該部分。

<appSettings> 
     <add key="OurService" 
     value="https://ourservice"/> 
</appSettings> 
+0

這是一個ASMX web服務,不是aspx頁面,所以它必須是配置文件中的一個條目。 – Jim 2010-06-22 16:57:49

0

我不認爲你可以把它放在配置文件(雖然我從來沒有打擾檢查)。

如果你只是希望它存儲在中央位置,你可以使用總是使用恆定:

internal sealed class ServiceConstants { 
    internal const string Namespace = "urn:example.com/~coolest/service/ever"; 
} 
[ServiceContract(Namespace=ServiceConstants.Namespace)] 
[WebService(Namespace=ServiceConstants.Namespace)] 
public sealed class MyService {} 
+0

謝謝,但不想在遷移到diff位置時需要更改代碼並重新編譯。 – Jim 2010-06-22 19:52:07

相關問題