Служба WCF с поддержкой Ajax не работает при публикации - PullRequest
1 голос
/ 22 февраля 2011

Я не знаю, к какой категории относится мой вопрос: ошибка программирования (с моей стороны) или ошибка IIS.

Я создал очень простую службу WCF с поддержкой Ajax из шаблона visual studio 2010. Вот код:

Файл CS:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class EmployeeServices
{
    [OperationContract]
    public int DoWork()
    {
        return 1;
    }
}

WEB.CONFIG (в отношении WCF)

 <system.serviceModel>
  <behaviors>
   <endpointBehaviors>
    <behavior name="EmployeeServicesAspNetAjaxBehavior">
     <enableWebScript />
    </behavior>
   </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  <services>
   <service name="EmployeeServices">
    <endpoint address="" behaviorConfiguration="EmployeeServicesAspNetAjaxBehavior" binding="webHttpBinding" contract="EmployeeServices" />
   </service>
  </services>
 </system.serviceModel>

И .SVC файл:

<%@ ServiceHost Language="C#" Debug="true" Service="EmployeeServices" CodeBehind="~/App_Code/EmployeeServices.cs" %>

Теперь проблема: Когда я проверяю это на своем локальном компьютере на веб-странице с javascript, который выглядит следующим образом:

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="EmployeeServices.svc" />
        </Services>
    </asp:ScriptManager>
<div>
    <script type="text/javascript">
        function pass(result) {
            alert(result);
        }

        function fail(result) {
            alert(result);
        }

        $(document).ready(function () {
            var service = new EmployeeServices();
            service.DoWork(pass, fail, null);
        });
    </script>
</div>
</form>

Работает нормально, пока я не опубликую его на веб-сервере. Затем я получаю сообщение об ошибке «Служащие не определены».

Как мне устранить эту проблему? Я искренне ценю вашу помощь.

1 Ответ

1 голос
/ 23 июня 2011

предоставляет пространство имен для вашего файла SVC, например [ServiceContract(Namespace = "namespacw")], и службу ncall в jquery с таким пространством имен, как <yournamespace>.service.DoWork(pass, fail, null).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...