-2

うまく動作する MVC 4 Web アプリケーションを作成しました。

のような行を追加しました

@if (User.IsInRole("Administrators"))
{
     <td>Entered by</td>
} 

ローカルには問題ありません。

それをきれいに...またはハードパブリッシュ(コントローラーで変更されたもの)とWHAM !!

App_Data サブディレクトリの作成中にアクセスが拒否されました

説明: セキュリティ上の理由から、ID 'IIS APPPOOL\ASP.NET v4.0' (この Web アプリケーションが実行されている) には、アプリケーションのルート ディレクトリ内に App_Data サブディレクトリを作成する権限がありません。ASP.NET は、Membership や Profile などのサービスに使用される Microsoft SQL Express データベース ファイルを、アプリケーションの App_Data サブディレクトリに格納します。

To grant the necessary permissions, follow these steps: In Windows Explorer, navigate to your application's directory. Create a folder named "App_Data": Right-click, choose "New" menu item, choose "Folder" sub-menu item, and then type "App_Data" (without quotes). Right-click on the "App_Data" subdirectory, within your application and select the "Properties" menu item. In the "Properties" dialog box that opens, select the "Security" tab.

Click Add

In the "Enter the object names to select" box, enter 'IIS APPPOOL\ASP.NET v4.0' (without quotes).

Click OK

Make sure the account name is selected and then under Allow, check Write

Click OK

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

ログアウトしてその Web サイトに再度ログインすると、エラーはなくなり、そのページはうまく機能します。

次で表されるローカルサーバーに向けられた組み込みのメンバーシップを使用しています

LocalHost で:

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial 
Catalog=aspnet-P****aker-2013062000841;
Integrated Security=SSPI" providerName="System.Data.SqlClient" />

生産時:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial 
Catalog=aspnet-Prop*****30******1;
User Id=Pr###A;Password=K###3;" providerName="System.Data.SqlClient"  
xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
</connectionStrings>

ここが謎の部分です。 App_Data ディレクトリはまったくありません...そしてねえ...結局のところ...そもそもなぜあるべきなのか、私はそれを使用していません。私は独自のサーバー処理メンバーシップを持っています。

優しい心があるなら、指一本、二本、十本を貸してくれませんか。

4

2 に答える 2

1

でデータベースのデータ ファイルを作成する SQL Express を使用していますApp_Data。Entity Framework が運用環境でデータベースを作成しようとすると、信頼レベルが設定されている場所にデータ ファイルを格納することを許可しないため、そのエラーが発生します。本番環境で実際の SQL Server インスタンスを使用します。これでこのエラーは修正されますが、それはあなたがすることでもあります。開発とテスト以外の目的で SQL Express を使用しないでください。

于 2013-07-24T14:07:38.590 に答える
0

アプリケーション プールの詳細設定に移動します。

Make Identity NetworkService

フォルダ App_Data を作成し、NetworkServiceへの書き込み可能なアクセスを許可します

SQL データベースにユーザーNT AUTHORITY\NETWORK SERVICEを追加し、Membership テーブルへの書き込みアクセスを許可します。

パブリッシュ後にロール アクセスを取得するには、ログアウト/ログインする必要がありますが、醜いエラーは解消されました

于 2013-07-24T16:58:59.533 に答える