Хостинг веб-сайта Asp.net MVC5 на годеды: System.Security.SecurityException

Я создал веб-сайт с помощью Visual Studio 2015 с .netframework 4.5.2. Веб-сайт отлично работает на локальном компьютере, но когда я загрузил его, я опубликовал его в Godaddy. Сначала я получил сообщение об ошибке. Пользовательская ошибка должна быть отключена. Я добавил тег, чтобы исправить это.

<customErrors mode="Off"/>

Затем я получаю сообщение об ошибке разрешения Trust «System.Security.SecurityException: запрос на разрешение типа« System.Security.Permissions.SecurityPermission, mscorlib, версия = 4.0.0.0, культура = нейтральный, PublicKeyToken = b77a5c561934e089 'не удалось». Я погуглил и обнаружил, что уровень доверия должен быть установлен на полный в настройках web.config и asp.net на сервере. Я установил полный уровень доверия CAS на сервере Godaddy и в наборе web.config, но это все равно не сработало.

<trustLevel name="Full" policyFile="internal"/> 

Я получаю Внутренняя ошибка сервера. Я попробовал еще раз и все та же ошибка.

<securityPolicy>
    <trustLevel name="Full" policyFile="internal"/>
 </securityPolicy>

Я не уверен, какие изменения мне нужны в файле web.config для работы. Пожалуйста, найдите мой web.config

<configuration>
 <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=SAFIRE\SQLEXPRESS;Initial Catalog=Hotel;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="MvcMailer.BaseURL" value="" />
</appSettings>
<system.web>    
 <authentication mode="None" />    
 <customErrors mode="Off"/>
 <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
    <trustLevel name="Full" policyFile="internal" />
</system.web>
<system.webServer>
    <modules>
        <remove name="FormsAuthentication" />
    </modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>
<system.net>
    <mailSettings>
        <smtp from="xxx">
        <network host="smtpout.europe.secureserver.net" port="25" userName="xxx" password="xxx" />
        </smtp>
    </mailSettings>
</system.net>
<system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
</system.codedom>

Я пропустил некоторые настройки для web.config?


person abhilash d.rai    schedule 07.05.2016    source источник


Ответы (2)


вам нужно очистить system.Codedom удалить этот раздел и добавить <system.codedom/>

это сработало для меня

person Joe    schedule 13.03.2018

Вы должны сделать пару вещей, чтобы определить проблему

1) Проверьте, содержит ли строка подключения «интегрированная безопасность = истина», если это правда, это означает, что веб-сайт пытается подключиться к базе данных с учетными данными Windows, старайтесь не использовать учетные данные Windows.

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

person Naveed Yousaf    schedule 07.05.2016
comment
Это комментарий, а не ответ. Вы можете опубликовать ответ, как только проблема будет ясна. Если проблема не ясна, отправьте комментарий с просьбой разъяснить. - person CodeCaster; 07.05.2016
comment
Я изменил строку подключения на строку подключения из базы данных Godaddy и включил пользовательскую ошибку. Все еще показывает ту же ошибку. внутренняя ошибка сервера 500. - person abhilash d.rai; 07.05.2016
comment
Я обновил файл we.config с помощью ‹securityPolicy›‹trustLevel name=Full policyFile=internal/› ‹/securityPolicy›. Теперь я получаю 403 запрещенную ошибку. У вас нет разрешения на доступ к этому документу. Я предполагаю, что это проблема уровня доверия, и я не уверен, что ошибаюсь после того, как указал уровень доверия. - person abhilash d.rai; 07.05.2016
comment
Вместо этого в вашем коде вам нужно попытаться дать полное разрешение на вашу папку. Пожалуйста, протестируйте. - person ; 09.05.2016