2013-08-19 76 views
2

나는 문제가 있으며 적절한 대답은 많은 사람들이 동일한 문제를 겪는 데 도움이 될 것이라고 생각합니다. 일반적으로 잘 대답하지 않는 문제이기 때문에..NET 4.0 중간 신뢰 수준 및 MYSQL 연결

문제는 IIS의 "중간 신뢰 수준"구성에 관한 것입니다. 몇 달 전 로컬 컴퓨터에서 "완전 신뢰 수준"구성으로 웹 사이트를 코딩했고 정상적으로 작동하는 호스트에 업로드했을 때 문제가있었습니다. 하지만 호스팅 회사는 신뢰 수준에 대한 새로운 규칙을 가지고 있습니다. 이제는 "중간 신뢰 수준"만 허용합니다.

내 웹 페이지가 작동하지 않습니다. 내 웹 사이트에 적응하려고했지만 어떻게 해야할지 잘 모릅니다. 그리고 많은 사람들이 그 중 하나를 모르는지 확신합니다. 그래서 나는 지금까지 해왔다. 나를 도울 수 있니? , \ WINDOWS \ Microsoft.NET 프레임 워크 \ \ v4.0.30319 구성

\

내 webconfig 파일을 열 :

먼저 나는에 여기 가서 내 로컬 구성을 변경

C 시도 및

<trust level="Medium" originUrl="" /> 
,617에

<trust level="Full" originUrl="" /> 

변경

: I이었다 ASP 기본 template.It와 함께 새로운 웹 사이트를 만들어 단지 테스트를 위해 그 후

working.Then 나는 그 스택 보안 예외를 throwed MySQL의 database.But에 연결을 참조로 Mysql.dll 추가

[SecurityException가 :. 'System.Security.Permissions.SecurityPermission, mscorlib에, 버전 4.0.0.0 = 중성 문화 = PublicKeyToken = b77a5c561934e089' 실패 형의 허가 신청] MySql.Data.MySqlClient.MySqlTrace .. cctor() +0

이제 무엇을 할 수 있습니까? 더 이상 mysql 데이터베이스에 연결할 수 없습니까? 아니면 솔루션이 있습니까? 웹 사이트 프로젝트 폴더에서 webconfig 파일을 변경 한 적이 없으며 여기에서 뭔가를 변경해야합니까? 제발 도와주세요?

답변

1

안녕하세요 모두 내 문제에 대한 해결책을 찾기 때문에 동일한 문제가있는 사람들을 돕기 위해 노력할 것입니다. 부분 신뢰와 중간 신뢰 수준은 똑같은 점에 유의하십시오.

질문에 대한 첫 걸음은 절대적으로 필요합니다. 신뢰 수준을 "보통"으로 변경하는 것을 잊지 마십시오. 그 후 바로 얻을 필요가 있습니다. 닷넷 커넥터 버전 The Oficial Website 호스팅 제공 업체가 사용하는 버전을 선택하는 데주의하십시오. 예를 들어 내 호스팅 회사에서 MySQL Connector Net 6.5.4를 사용하고 있습니다.

두 번째로 .dll 파일을 사용하고 중간 신뢰 수준에서 필요한 permisson을 얻을 프로젝트 webconfig 파일을 구성해야합니다.

<configuration>에 다음을 추가해야합니다.

<mscorlib> 
    <security> 
     <policy> 
     <PolicyLevel version="1"> 
      <SecurityClasses> 
      <SecurityClass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
      </SecurityClasses> 
     </PolicyLevel> 
     </policy> 
    </security> 
    </mscorlib> 

그리고 시스템이 자동으로 아래를 추가하지 않는 경우 <system.web> 추가 할 필요가;

<assemblies> 
    <add assembly="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Web, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </assemblies> 

때때로이 단계는 충분하지 않을 수 있습니다 그리고 당신은 당신은

<SecurityClasses> 
    <securityclass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 

에서이 줄을 추가하는 데 필요한

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config 

아래 web_mediumtrust.config을 편집해야

<NamedPermissionSets> 
    <iPermission class = "MysqlClientPermission" version = "1"> 
    <add connectionString = "Server =; Database =;" restrictions = "User =; User Id =; Password =; Port =; Pooling =;" KeyRestrictionBehavior = "(Prevent Usage | Allow Only)" /> 
    </iPermission> 

당신이 사용하고있는 버전에 대한 유감스럽게도 그것에 따라 라인을 변경하는 것을 잊지 마십시오. 아직도 당신이 알아낼 수없는 경우 여기

Trust Level Under the Partial Trust

0

내가 MySQL은 중간 신뢰 환경에서 작동하도록 노력와 유사한 문제를 해결하는 방법입니다에 대한 매우 유용한 링크가있다.

우리는 '책'에 모든 것을 시도하고 단순히 작동시키지 못했습니다!

MySql 커넥터 버전이 중요합니다. GAC의 서버에 설치된 MySqlClient의 버전을 웹 호스팅 회사에 문의하십시오.

(GAC은 단순히 라이브러리가 서버에 설치되어 있으므로 MySql.Data.dll을 bin 폴더에 업로드하지 않고 직접 참조 할 수 있음을 의미합니다. 최신 설치 버전은 http://dev.mysql.com/downloads/connector/net/입니다) .

:

드라이버가 방금 같은 당신의 Web.config에서 그것을 참조 할 필요가 GAC에있는 서버에 설치되면,하지만 웹은 기업들에게 버전을 접대 버전 = 6.6.5.0 교체

<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
    <add assembly="MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </assemblies>  
</compilation>