programing

ADO를 설정하려면 어떻게 해야 합니까?윈도우즈 Azure(Preview) 관리 포털을 통한 NET Entity Framework 연결 문자열?

muds 2023. 4. 26. 23:50
반응형

ADO를 설정하려면 어떻게 해야 합니까?윈도우즈 Azure(Preview) 관리 포털을 통한 NET Entity Framework 연결 문자열?

윈도우즈 Azure(미리 보기) 관리 포털에서 웹 사이트의 구성 옵션을 변경할 수 있습니다(http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/ #구성 변경 방법 참조).

현재 ADO에 대한 연결 문자열을 설정하고 있습니다.웹을 통한 NET Entity Framework 연결.풀어주다.구성. 하지만 Management Portal을 통해 설정하려고 하지만 사용하는 항목에 관계없이 항상 다음 오류가 발생합니다.

지정한 명명된 연결이 구성에 없거나 EntityClient 제공자와 함께 사용할 수 없거나 잘못되었습니다.

메타데이터 및 매핑 정보(csdl, ssdl, msl)를 정의하는 메타데이터 키가 없는 일반 연결 문자열에서 작동합니다.

제가 하는 일은 다음과 같습니다.

https://manage.windowsazure.com/ #Workspaces/WebsiteExtension/Website/[MY-STAGE-SITE-NAME]/configure로 이동합니다.

"연결 문자열" 아래에 다음과 같은 "응용 프로그램 서비스"라는 키가 있습니다.

서버 = 주소: xxxxx.database.windows.net ,1433; 데이터베이스 = xxxxxxx; 사용자 ID = xxxx@xxxxx; 암호 = xxxxx;Trusted_Connection=False;= 암호화참;연결 시간 초과=30;

이거 효과가 있어요.

Entity Framework 연결을 위한 다른 키가 있습니다.이것을 FooBarContext라고 부릅니다.다음과 같이 표시됩니다.

메타데이터=res:///Models.FooBarContext.csdl|res:///Models.FooBarContext.ssdl|res://*/Models.FooBarContext.msl;공급자=시스템.Data.SqlClient;공급자 연결 문자열="Server = 서버: fooserver.database.windows.net ,1433; Database= foobar; 사용자 ID= myname@fooserver;암호=xxxxxxxxxxx;Trusted_Connection=False;= 암호화참;연결 시간 초과=30;"

이것은 위에서 설명한 오류를 발생시킵니다.웹의 작업 값에서 복사됩니다.풀어주다.구성( "을 "로 대체)

저는 다른 변형을 시도해 보았습니다. "untouch", 마지막에 메타데이터를 추가했지만 소용이 없었습니다.저는 두 번째 웹사이트에서 문제를 재현했습니다.

데이터베이스가 SQL Azure에서 실행되지만 Entity Framework 연결 문자열에 대한 "SQL Azure / SQL Server / MySQL / Custom" 선택기에서 "SQL Azure" 대신 "Custom"을 선택하는 것이 문제 해결 방법이었습니다.

[편집] 아래의 @mat the w-steepes의 인기 댓글에서:

수 있는 동한문가진다른사위람을해이추것싶가파은이일구것성일때은때로고하에들제를▁the▁have▁i▁will▁file이파가 있다는 것입니다.""그리고 애저 웹사이트는 그것들을 변경해야 합니다."

여기에 이미지 설명 입력

교체하다

"

와 함께

"

연결 문자열에 있습니다.

대신 이중 따옴표(또는 단일 따옴표)를 사용해야 했을 뿐만 아니라"(및 유형에 대해 Custom(사용자 정의)을 선택합니다.) 하지만 변환 구성에 더미 값이 있는지도 확인해야 했습니다.저는 전체 connectionStrings 노드를 교체하고 있었지만, 이 노드를 유지하고 다음을 추가하기로 결정했습니다.

<add xdt:Transform="Replace" xdt:Locator="Match(name)" name="FooBarEntities" connectionString="temp" providerName="System.Data.EntityClient" />

이 오류가 없으면 다음 오류가 발생했습니다.

The connection string 'FooBarEntities' in the application's configuration file does not contain the required providerName attribute.

위의 답변 외에도 두 가지 매우 중요한 사항이 있습니다.

  1. 생성자의 "name=connectionString"에서 "name="을(를) 제거해야 합니다.

공용 MyEntities(string connectionString) : base($"name={connectionString})" { }

  1. app.config에 연결 문자열의 "복제"를 남겨야 하지만 연결 문자열을 더미 텍스트로 바꾸면 Azure에서 올바른 연결 문자열이 로드됩니다.이는 providerName 파트에 필요합니다.다음을 읽어 보십시오: https://mohitgoyal.co/2017/07/05/update-connection-string-for-entity-framework-in-azure-web-app-settings/comment-page-1/ .

저도 같은 문제가 있었습니다.web.config 연결 문자열을 넣으며 해결했습니다.

<add name="eManagerTurModelConnection" connectionString="metadata=res://*/ORM.eManagerFinanceModel.csdl|res://*/ORM.eManagerFinanceModel.ssdl|res://*/ORM.eManagerFinanceModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<server>.database.windows.net;Initial Catalog=eManagerTur;Integrated Security=False;User ID=<user>;Password=<Password>;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

그리고 웹사이트의 연결 문자열을 제거한 후 web.config에 추가한 연결 문자열을 얻지 못했기 때문에 작동했습니다.

영어가 서툴러요...=)

언급URL : https://stackoverflow.com/questions/14459748/how-do-i-set-an-ado-net-entity-framework-connection-string-via-the-windows-azure

반응형