Используйте приложение Web Config вместо IIS - PullRequest
0 голосов
/ 15 января 2020

Я сталкиваюсь с проблемой, когда пытаюсь запустить приложение на сервере своей компании, на своем локальном компьютере и в IIS. У меня нет проблем. Играя с обоими (сервер компании и мой компьютер) конфигурацией IIS, я обнаружил, что проблема в файлах Web.config. Файл web.config моего веб-приложения выглядит следующим образом:

<configuration>
  <appSettings>
    <add key="FilesPath" value="/MobileApp/Excel/"/>
    <add key="dbConn" value="Server=192.168.10.1\\SQLEXPRESS;Initial Catalog=A;User Id=sa;Password=1223;" />
  </appSettings>

  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="2147483647"/>
      </webServices>
    </scripting>
  </system.web.extensions>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
        <add assembly="Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
      </assemblies>
    </compilation>
    <authentication mode="Forms"/>
  </system.web>
</configuration>

И здесь есть разница. На моем локальном пути IIS root файл web.config выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>

    </system.webServer>
</configuration>

И файл сервера web.config выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <identity impersonate="false" />
        <authentication mode="Windows" />
        <sessionState cookieless="AutoDetect" mode="InProc" regenerateExpiredSessionId="false" />
    </system.web>
    <system.webServer>
        <directoryBrowse enabled="true" />
        <staticContent>
            <mimeMap fileExtension=".pac" mimeType="application/x-ns-proxy-autoconfig" />
            <mimeMap fileExtension=".jnpl" mimeType="application/x-java-jnlp-file" />
        </staticContent>
        <tracing>
            <traceFailedRequests>
                <remove path="*" />
                <add path="*">
                    <traceAreas>
                        <add provider="ASP" verbosity="Verbose" />
                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
                        <add provider="ISAPI Extension" verbosity="Verbose" />
                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions timeTaken="00:00:00" statusCodes="100-999" />
                </add>
            </traceFailedRequests>
        </tracing>
    </system.webServer>
</configuration>

Я пытаюсь выполнить следующие действия: выполнить вызов ajax и на локальном IIS работает нормально, когда я запускаю тот же код на сервере IIS, я получаю сообщение об ошибке 401 Unauthorized .

Что может быть причиной этой ошибки ? И если файл web.config на сервере есть способ избежать чтения этого файла? Потому что мне легко удалить все, но на этом сервере запущено много приложений, и если я что-то удаляю, я не знаю, как это повлияет на функциональность.

PD. На локальном IIS я использую версию 7.5, а на сервере я использую IIS 8.

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