2016-11-28 1 views
1

データベースにAP.Netのメンバーシップを追加しようとしています。私は過去にこれで成功していたので、私が何をやっているのかがわかっています。私のプロジェクトはFramework 4.5.2のVB.Netウェブサイトです。私はフレームワーク4でasp_regsql.exeを使用して、私のdbにスキーマを追加しました。私は(MSDNの記事あたり)以下のweb.configエントリを作成:ASP.NetメンバーシップエラーCREATE DATABASEが失敗しました。リストされたファイル名の一部を作成できませんでした。関連するエラーを確認してください

<connectionStrings> 
<add name="AFKMSConnectionString" providerName="System.Data.SqlClient" connectionString="working as intended" />  

<system.web> 
<authentication mode="Forms" > 
    <forms loginUrl="Account/Login.aspx" 
    name=".ASPXFORMSAUTH" /> 
</authentication> 
<!--<authorization> 
    <deny users="?" /> 
</authorization>--> 
<compilation debug="true" targetFramework="4.5.2"/> 
<httpRuntime targetFramework="4.5.2"/> 
<pages> 
    <namespaces> 
    <add namespace="System.Web.Optimization"/> 
    <add namespace="Microsoft.AspNet.Identity"/> 
    </namespaces> 
    <controls> 
    <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/> 
    </controls> 
</pages> 
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15"> 
    <providers> 
    <clear/> 
    <add 
    name="SqlMembershipProvider" 
    type="System.Web.Security.SqlMembershipProvider" 
    connectionStringName="AFKMSConnectionString" 
    applicationName="AFKMS" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="false" 
    requiresUniqueEmail="true" 
    passwordFormat="Hashed" /> 
    </providers> 
</membership> 
<profile enabled ="true" defaultProvider="SqlProvider"> 
    <providers> 
    <clear /> 
    <add name="SqlProvider" 
     type="System.Web.Profile.SqlProfileProvider" 
     connectionStringName="AFKMSConnectionString" 
     applicationName="AFKMS" 
     description="SqlProfileProvider for SampleApplication" /> 
    </providers> 
</profile> 
<roleManager enabled ="true" 
      defaultProvider ="SqlRoleProvider" > 
    <providers> 
    <clear/> 
    <add name ="SqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider" 
     connectionStringName="AFKMSConnectionString" 
     applicationName="AFKMS"/> 

    </providers> 
</roleManager> 

私の接続文字列は、私の現在の機能のために動作しますが、私は、私は次のエラーを取得するユーザーを登録しようとすると:

Directory lookup for the file "C:\Users\Dan\Source\Repos\AFKMS\AFKMS\App_Data\aspnet-AFKMS-140073d4-6858-4f19-9555-0edfbaadd43a.mdf" failed with the operating system error 2(The system cannot find the file specified.). CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

これはアカウント/登録、

薄暗い結果= manager.Cから来ていますreate(user、Password.Text)

なぜデータベースを作成しようとしていますか?私は行方不明のように見えますか?

+0

'web.config'に接続文字列がありません。メンバシップおよびロールプロバイダ構成セクションは接続文字列を参照しますが、存在しません。 @ ahmedの答えは正しいです。 –

+0

私は引用用の接続文字列を使いませんでした。それは私が現在持っている他のすべてのアプリケーション機能のために働く。 –

+0

私は、ASP.Net 4.5.2アプリケーションのデフォルトは、おそらくIdentity Framework 2.0であり、旧メンバシップフレームワークではないと考えています。そのため、接続文字列を使用していない理由があります。 –

答えて

2
<connectionStrings> 
<add name="AFKMSConnectionString" connectionString="data source=.;Initial Catalog=your_db_name;integrated security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

ユーザーの作成方法に関するコードを教えてください。 あなたが言及します。Dim結果= manager.Create(ユーザー、Password.Text) 私はあなたが使用する必要があると思う:

Membership.CreateUser(UserName, Password, Email) 
+0

これはasp.net 4.5.2の登録ページのデフォルトで提供されるコードです。 –

1

を私は使用して、新しいASP.NET Webアプリケーションを作成したと仮定していますWebフォームテンプレート?

新しいASP.NET Identityシステムを元のメンバーシッププロバイダ設定で構成しようとしているようです。

Ahmedと記載されているように、登録ページの電話番号はmanager.Create(user, Password.Text)です。これはASP.NET IDのApplicationUserManagerを使用しています。

あなたのプロジェクトのApp_Startフォルダに見れば、あなたはApplicationUserManagerを返すメソッドCreateを持ってIdentityConfig.vb(あなたはVB.NETを使用していると仮定した場合)という名前のファイルを、見つける必要があります - これを次に"DefaultConnection"という接続を使用するように定義されたModelsフォルダに作成されたApplicationDbContextクラスを呼び出します。デフォルトでは、プロジェクトの名前を付けたApp_Dataフォルダにスタンドアロン.mdfファイルとして設定されています。

接続文字列を指すようにこれを変更する必要がありますが、エンティティフレームワークを使用してデータベーススキーマを作成することに注意してください。既存のデータベースに追加するだけで済みますが、あなたが最初にすべてを落とす場合に備えて、あなたが始める前に、

+0

私はApp_Startフォルダが表示されず、IdentityConfig.vbファイルも見つかりません。あなたがリンクして読んだASP.NETアイデンティティサイトへのリンクを調べ、該当するものが見つかるかどうかを確認します。 –

+0

正直言って私は、VBテンプレートがインストールされていないので、私のC#テンプレートを使っていました - あなたは 'manager'がタイプで、そこからそれに従うクラスのプロジェクトを検索できるはずです - モデルフォルダ? –

+0

私はMVCを使用していない、私はwebformsを使用しています。私はdefaultconnectionへの他の参照を見つけましたが、それを変更しましたが、改善が見られませんでした。 –

関連する問題