我們的網站引用似乎沒有在網站的web.config中定義,它使用它。我發現在「Web References」文件夾中有一個名爲「Reference.map」的配置文件,它看起來是可編輯的,但是當我編輯它們時,什麼都不會發生。我甚至重命名了文件夾中的WSDL文件,以查看它是否會得到一個新文件。它沒。如何更改生產.NET網站中的Web引用?
我是否必須執行構建以更改引用的Web服務的URL?
我們的網站引用似乎沒有在網站的web.config中定義,它使用它。我發現在「Web References」文件夾中有一個名爲「Reference.map」的配置文件,它看起來是可編輯的,但是當我編輯它們時,什麼都不會發生。我甚至重命名了文件夾中的WSDL文件,以查看它是否會得到一個新文件。它沒。如何更改生產.NET網站中的Web引用?
我是否必須執行構建以更改引用的Web服務的URL?
您可以將Web引用標記爲靜態或動態URL。如果您選擇動態,那麼它會將URL添加到web.config中,然後您可以在生產環境中進行更改。
如果它被標記爲靜態,那麼它將被編譯到二進制文件中,並且在沒有重建的情況下不可更改。
如果它已經是動態的,那麼代碼會查找動態URL,然後如果它找不到它,那麼它將使用默認的原始值。因此,你可以添加一個進入Web配置如:
<applicationSettings>
<MySystem.Properties.Settings>
<setting name="MySystem_MyService" serializeAs="String">
<value>http://mysystem/service.asmx</value>
</setting>
</MySystem.Properties.Settings>
</applicationSettings>
在Compact Framework的,你必須閱讀自己的類的WebService的配置文件:
public partial class YourService : System.Web.Services.Protocols.SoapHttpClientProtocol {
/// <remarks/>
public HandTerminalService() {
string appSettings = string.Concat(Assembly.GetExecutingAssembly().GetName().CodeBase, ".config");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(appSettings);
XmlNode xmlNode = xmlDocument.SelectSingleNode("//configuration/appSettings/add[@key = 'Proxy.YourServiceService']");
if (xmlNode.Attributes["value"].Value != null)
{
this.Url = string.Concat(xmlNode.Attributes["value"].Value, "");
} else
{
this.Url = "http://<IP_or_DNS-Name>:<Port>/YourService.asmx";
}
}
我後實現將其標記爲URL被標記爲動態的答案,但它仍然不在Web配置中。任何其他想法? – JoshBaltzell 2010-02-25 16:38:22
已經添加了一些更多的信息,基本上你只需在web.config中添加行。其確切的語法取決於您的Web引用。 – 2010-02-25 17:56:49
要補充一點,只需刪除並重新添加Web引用就可能會爲您重新構建web.config。確保它不是隻讀或任何東西。 – 2010-02-25 17:58:17