Visual Studio 2010を使用して、いくつかのWebサイト(Webアプリケーションプロジェクトではありません)とコマンドラインとwinformsプロジェクトのソリューションがあります。すべてのターゲット.Net 2.0。多くのプロジェクトでは、WebサイトのASMX WebサービスへのWeb参照があります。WSDL.exeと "Web参照の更新"で生成されるWebサービスプロキシコード - 注意が必要ですか?
Webサービスは頻繁に変更されるため、すべてをコンパイルすると、手動ですべてのプロジェクトを実行し、Webサービス参照を更新する必要があります。私は今、disco.exeとwsdl.exeを使って自動化に成功しました。しかし、私はwsdl.exeによって生成されたコードの違いとVSのWeb参照の手動更新について心配しています。 VSは、このようなコードを生成している間
public WebServiceName() {
string urlSetting = System.Configuration.ConfigurationManager.AppSettings["WebServiceName"];
if ((urlSetting != null)) {
this.Url = urlSetting;
}
else {
this.Url = "http://example/webservicename.asmx";
}
}
:
wsdl.exeは、このようなコードを生成します
private bool useDefaultCredentialsSetExplicitly;
public WebServiceName() {
this.Url = global::ProjectName.Properties.Settings.Default.ProjectName_WebServiceNameWebService_WebServiceName;
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
this.UseDefaultCredentials = true;
this.useDefaultCredentialsSetExplicitly = false;
}
else {
this.useDefaultCredentialsSetExplicitly = true;
}
}
public new string Url {
get {
return base.Url;
}
set {
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
&& (this.useDefaultCredentialsSetExplicitly == false))
&& (this.IsLocalFileSystemWebService(value) == false))) {
base.UseDefaultCredentials = false;
}
base.Url = value;
}
}
public new bool UseDefaultCredentials {
get {
return base.UseDefaultCredentials;
}
set {
base.UseDefaultCredentials = value;
this.useDefaultCredentialsSetExplicitly = true;
}
}
private bool IsLocalFileSystemWebService(string url) {
if (((url == null)
|| (url == string.Empty))) {
return false;
}
System.Uri wsUri = new System.Uri(url);
if (((wsUri.Port >= 1024)
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
return true;
}
return false;
}
それ以外は基本的に同じです。私はこれについて心配する必要がありますか?つまり、オーバーライドURLがapp.configファイルとweb.configファイルにどのように格納されるかを変更する必要があることを意味します。 wsdl.exeはappSettingsを使用し、VSはconfigSections/applicationSettingsを使用します。
P .:私はASMXが古く、WCFが新しいことを知っています。私はこれに固執しています。
UPDATE:違いについて語っこの記事を見つけた :複数のWebアプリケーションプロジェクト全体
動的URLを共有する方法
http://weblogs.asp.net/bradleyb/archive/2006/05/04/445133.aspx
うわー! 1000人がこの質問を見ました(バッジを持っています!)が、誰もコメントや答えをしたことはありません。私はこれについていくつかの考えを聞いてみたい。私はこれをしたいと夢中でしたか?別の方法を見つけましたか?等。 –