У меня есть базовая служба WCF, работающая на сервере IIS, на ней также находится база данных SQL.
локально, когда я запускаю его, он работает нормально, и все мои сервисные функции работают, однако после публикации на сервере IIS я получаю
The server encountered an error processing the request. Please see the service help page for constructing valid requests to the service.
Только при вызове / function
если я просто перехожу на стартовую страницу, я получаю конечную точку, не найденную, что аналогично моему локальному.
вот как выглядит мой service.svc
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;
using System.Web.Script.Services;
using Newtonsoft.Json.Linq;
namespace myNameSpace
{
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
/// <summary>
/// ....
/// </summary>
/// <returns>string</returns>
[WebInvoke(UriTemplate = "/NextWeek", Method = "GET")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string nextWeek()
{
return db.Instance.getNextWeek();
}
//this continues for awhile and is basically the same type of functions
}
}
Я также создал global.asax
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(Service)));
}
}
и вот мой web.config
Изначально я получал ошибку 404, но мне удалось устранить ее там, где показано, что мой сервис имеетнет конечной точки.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5" />
</system.Web>
-->
<system.web>
<compilation targetFramework="4.6" />
<pages controlRenderingCompatibilityVersion="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default
endpoint via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<!--
To avoid disclosing metadata information, set the value below to false and remove the
metadata endpoint above before deployment
-->
<serviceMetadata httpGetEnabled="true" />
<!--
To receive exception details in faults for debugging purposes, set the value below to
true. Set to false before deployment to avoid disclosing exception information
-->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
<connectionStrings>
.....
</connectionStrings>
</configuration>
Я пробовал несколько разных вариантов с конфигурацией, которую я нашел на сайте Microsoft, но это не помогло.
спасибо.