«Могли not load App_Web _ *. dll »Исключение после компиляции и повторного использования ASP.NET

Вот код для преобразования между JSON и NSData в swift 2.0 (адаптировано из ответа Шуо)

// Convert from NSData to json object
func nsdataToJSON(data: NSData) -> AnyObject? {
    do {
        return try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
    } catch let myJSONError {
        print(myJSONError)
    }
    return nil
}

// Convert from JSON to nsdata
func jsonToNSData(json: AnyObject) -> NSData?{
    do {
        return try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted)
    } catch let myJSONError {
        print(myJSONError)
    }
    return nil;
}
17
задан Josef Pfleger 29 October 2010 в 11:55
поделиться

2 ответа

Код не должен иметь следующую структуру:

  • FooService.cs
  • FooService.svc
  • Default.aspx

Но следующее:

  • App_Code /FooService.cs
  • FooService.svc
  • Default.aspx

Обратите внимание на специальную папку App_Code, которая содержит исходный код.

Подведем итоги:

~/App_Code/FooService.cs:

using System.ServiceModel;

namespace FooService
{
    [ServiceContract]
    public class FooService
    {
        static FooEngine engine = new FooEngine();

        [OperationContract]
        public string Foo()
        {
            return "bar";
        }
    }

    public class FooEngine
    {

    }
}

~/FooService.svc:

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

~/Web.config:

<configuration>
  <system.web>
    <compilation debug="false" targetFramework="4.0" />
  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

~/Default.aspx:

<%@ Page Language="C#" %>
<% var foo = "bar"; %>

При этом я рекомендую вам использовать веб-приложения вместо веб-сайтов и предварительно скомпилировать все, чтобы избежать подобных проблем. Другое преимущество заключается в том, что вам больше не нужно развертывать исходный код на сервере.

Если вы используете скомпилированное веб-приложение, ваша структура будет следующей:

  • bin / MyWebService.dll
  • FooService.svc
  • Default.aspx

Это то, что я бы порекомендовал вам.

2
ответ дан 30 November 2019 в 13:20
поделиться

У меня была похожая проблема с моим проектом, веб-сайт работал нормально, но все веб-службы svc сталкивались с такой же ошибкой.

Я попытался изменить строку ниже в web.config, но это не помогло

    <compilation debug="false" batch="false"> 

Решение, которое я нашел, было связано с тем, как было построено приложение.

Поскольку я использовал проект развертывания, я обнаружил, что сняв флажок с опции:

Использовать как компонент библиотеки (удалите файл App_Code.compiled)

в Страница «Выходные сборки», а затем перестройка и развертывание проекта, казалось, работали для меня.

Надеюсь, что это помогает кому-то еще.

0
ответ дан 30 November 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: