29

Windows Azure (プレビュー) 管理ポータルでは、Web サイトの構成オプションを変更できます ( http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/を参照)。 #howtochangeconfig )。

現在、ADO.NET Entity Framework 接続の接続文字列を Web.Release.Config 経由で設定していますが、管理ポータル経由で設定したいのですが、何を使用しても常に次のエラーが発生します。

指定された名前付き接続が構成内に見つからないか、EntityClient プロバイダーでの使用が意図されていないか、無効です。

通常の接続文字列、つまり、メタデータとマッピング情報 (csdl、ssdl、msl) を定義するメタデータ キーがなくても機能します。

これが私がすることです:

https://manage.windowsazure.com/#Workspaces/WebsiteExtension/Website/[MY-STAGING-SITE-NAME]/configureにアクセスします

「接続文字列」の下に、次のような「ApplicationServices」という名前のキーがあります。

サーバー=tcp:xxxxx.database.windows.net,1433;データベース=xxxxx;ユーザー ID=xxxxx@xxxxx;パスワード=xxxxx;Trusted_Connection=False;暗号化=True;接続タイムアウト=30;

これは機能します。

Entity Framework 接続用の別のキーがあります。それを 1 つの FooBarContext と呼びましょう。次のようになります。

metadata=res:// /Models.FooBarContext.csdl|res:// /Models.FooBarContext.ssdl|res://*/Models.FooBarContext.msl;provider=System.Data.SqlClient;provider connection string="Server =tcp:fooserver.database.windows.net,1433;データベース=foobar;ユーザー ID=myname@fooserver;パスワード=xxxxxxxxx;Trusted_Connection=False;Encrypt=True;接続タイムアウト=30;"

これにより、上記のエラーが発生します。これは、Web.Release.Configの作業値から " を付けてコピーされます。"に置き換えられます。

私は他のバリエーションを試しました。メタデータが最後に追加されたまま、そのままですが、役に立ちませんでした。2 番目の Web サイトで問題を再現しました。

4

5 に答える 5

52

私の問題の解決策は、データベースが SQL Azure で実行されていても、Entity Framework 接続文字列の "SQL Azure / SQL Server / MySQL / Custom" セレクターから"SQL Azure"ではなく"Custom"を選択することでした。

[編集] 以下の @matthew-steeples による人気のあるコメントから:

同じ問題を抱えている他の人のためにこれに追加し"ます""

于 2013-01-25T14:59:40.193 に答える
14

ここに画像の説明を入力

交換

"

"

接続文字列。

于 2016-06-26T01:09:16.163 に答える
5

代わりに二重引用符 (または単一引用符) を使用する"必要があっただけでなく (タイプに [カスタム] を選択する必要がありました)、変換構成にダミーの値があることも確認する必要がありました。私は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.

于 2016-03-13T19:48:42.177 に答える
-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に追加した接続文字列を取得していなかったため、Webサイトの接続文字列を削除した後、機能しました。

英語が悪い... =)

于 2013-11-07T03:56:43.817 に答える