Visual Studio 2010 で C#/ASP.NET アプリケーションを作成し、その中にservice.svc
ファイルと対応する
IService.cs
//契約Service.cs
//コントラクトの実装 - インターフェイス
この WCF サービスは、データを JSON で返します。jQuery ajax postでヒットしました。このサービスは私が望んでいたように機能しているように見えましたが、2 つ目のサービス、つまりServiceNew.svc
対応するサービスを追加することにしました。
IServiceNew.cs
//契約ServiceNew.cs
//コントラクトの実装 - インターフェイス
に対応するエンドポイントを追加しますweb.config
。
2 番目の WCF サービスを追加した後、どのサービスも機能せず、500 内部サーバー エラーが返されました。
最も奇妙な部分は、アプリケーションのフォルダーからすべての新しいファイルを削除するとServiceNew.svc
、以前のように jQuery 投稿でそれらをヒットしたときに最初に機能し、次にこれらのファイルをフォルダーに再度コピーして実行するIServiceNew.cs
とServiceNew.cs
、Service.svc
Visual Studio ホストの場合、私のサービス (古いものと新しいもの) の両方がランダムな期間動作し、jQuery ajax 呼び出しでサービスをヒットすると、突然 500 エラーが返されます。
私web.config
は:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Service">
<endpoint address="" binding="webHttpBinding"
contract="IService" behaviorConfiguration="EndpBehavior"/>
</service>
<service behaviorConfiguration="ServiceBehavior" name="ServiceNew">
<endpoint address="" binding="webHttpBinding"
contract="IServiceNew" behaviorConfiguration="EndpBehavior"/>
</service>
</services>
</system.serviceModel>
IService.cs
:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
[return: MessageParameter(Name = "d")]
MovieInfo GetMovieInfo(string title, string year);
}
Service.cs
:
[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)]
public class Service: IService
{
public MovieInfo GetMovieInfo(string title, string year)
{
...
return MovieInfo();
}
}
同様に
IServiceNew.cs
:
[ServiceContract]
public interface IServiceNew
{
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
[return: MessageParameter(Name = "d")]
string GetConf();
}
ServiceNew.cs
:
[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceNew: IServiceNew
{
public string GetConf()
{
...
return conf;
}
}
誰かが私が間違っていることを教えてもらえますか? jQuery ajax 呼び出しでヒットするために、ASP.NET アプリケーションに複数の WCF サービス ( .svc ファイル) を追加するにはどうすればよいですか?
私の何かが間違っていweb.config
ますか?
それは何か他のものですか?
ありがとう
アップデート:
更新として、.svc ファイルの 1 つをデバッグしようとすると、ブラウザーで ServiceNew.svc を例にすると、以下の例外が表示されると言えます。
ファイルまたはアセンブリ 'App_Web_oq2tdtg4, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
スタックトレース:
[FileNotFoundException: ファイルまたはアセンブリ 'App_Web_oq2tdtg4, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは指定されたファイルを見つけることができません。 (AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +39 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity,
[ServiceActivationException: コンパイル中の例外のため、サービス '/ServiceNew.svc' をアクティブ化できません。例外メッセージは次のとおりです。指定されたファイルが見つかりません..] System.Runtime.AsyncResult.End(IAsyncResult 結果) +687598 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult 結果) +190 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication コンテキスト.
アセンブリ ロード トレース:
次の情報は、アセンブリ 'App_Web_oq2tdtg4, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' を読み込めなかった理由を特定するのに役立ちます。
=== バインド前の状態情報 === LOG: User = ZULUTRADE\stassis LOG: DisplayName = App_Web_oq2tdtg4, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null (完全指定) LOG: Appbase = file:// /C:/Users/stassis/Documents/Development/theDreamBox/ LOG: Initial PrivatePath = C:\Users\stassis\Documents\Development\theDreamBox\bin
呼び出しアセンブリ : (不明)。
ログ: このバインドはデフォルトのロード コンテキストで開始されます。ログ: アプリケーション構成ファイルの使用: C:\Users\stassis\Documents\Development\theDreamBox\web.config ログ: ホスト構成ファイルの使用: ログ: C:\Windows\Microsoft.NET\Framework\v4 のマシン構成ファイルの使用。 0.30319\config\machine.config. ログ: 現時点ではポリシーが参照に適用されていません (プライベート、カスタム、部分、または場所に基づくアセンブリ バインド)。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4/App_Web_oq2tdtg4.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.DLL. ログ:新しい URL ファイル:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.DLL のダウンロードを試みています。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. 新しい URL ファイル:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4.EXE のダウンロードを試みています。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. 新しい URL ファイル:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4.EXE のダウンロードを試みています。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/AppData/Local/Temp/Temporary ASP.NET Files/root/87ef3319/ec80b2f5/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. EXE。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE. EXE。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/stassis/Documents/Development/theDreamBox/bin/App_Web_oq2tdtg4/App_Web_oq2tdtg4.EXE.