我在 Visual Studio 2010 中创建了一个 C#/ASP.NET 应用程序,并在其中创建了一个service.svc
文件和相应的
IService.cs
//合同Service.cs
//合约的实现-接口
这个 WCF 服务以 JSON 格式返回我的数据。我用 jQuery ajax 帖子击中了它。这项服务似乎可以按我的意愿工作,但后来我决定添加第二项服务,即ServiceNew.svc
与其相应的服务
IServiceNew.cs
//合同ServiceNew.cs
//合约的实现-接口
并在web.config
.
在我添加了第二个 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;
}
}
有人可以告诉我我做错了什么吗?如何在 ASP.NET 应用程序中添加多个 WCF 服务( .svc 文件),以便通过 jQuery ajax 调用来访问它们?
我的有什么问题web.config
吗?
是别的吗?
谢谢
更新:
作为更新,我可以说,当我尝试调试其中一个 .svc 文件时,假设浏览器中的 ServiceNew.svc 会显示以下异常:
无法加载文件或程序集 'App_Web_oq2tdtg4,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null' 或其依赖项之一。该系统找不到指定的文件。
堆栈跟踪:
[FileNotFoundException:无法加载文件或程序集“App_Web_oq2tdtg4,版本=0.0.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 System.Reflection.RuntimeAssembly.nLoad (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”由于编译过程中的异常而无法激活。异常消息是:无法加载文件或程序集 'App_Web_oq2tdtg4,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件..] System.Runtime.AsyncResult.End(IAsyncResult result) +687598 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context , String routeServiceVirtualPath, Boolean flowContext, Boolean ensureWFService) +234 System.ServiceModel.Activation.HttpHandler.ProcessRequest(HttpContext context) +24 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep。
装配负载跟踪:
以下信息有助于确定为什么无法加载程序集“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
调用程序集:(未知)。
LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:C:\Users\stassis\Documents\Development\theDreamBox\web.config LOG:使用主机配置文件:LOG:使用来自 C:\Windows\Microsoft.NET\Framework\v4 的机器配置文件。 0.30319\config\machine.config。LOG:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。日志:正在尝试下载新的 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。