zoukankan      html  css  js  c++  java
  • ASP.NET 2.0使用user profile储存信息前,如何部署aspnetdb.mdf和连接

     

    我在解决这个问题的时候走了不少弯路,现将方法总结给大家!希望不会有人想我一样,花了9个小时才弄好。

    无论是SQL SERVER 2005还是SQL SERVER EXPRESS都可能遇到这个问题。

    前提:当我在项目的Web.Config文件中添加

    <anonymousIdentification enabled="true"/>
    <profile enabled="true">
    <properties>
    <add name="MyNewProperty" allowAnonymous="true" />
    </properties>
    </profile>

    后,如果正确,将可以通过

    //code in Page1.aspx
    Profile.MyNewProperty = "Hello";

    //

    //code in Page2.aspx
    string myProperty = Profile.MyNewProperty;
    访问。

    问题出现:

    修改过Web.Config后,对于项目内的任何页面,调试运行时报错:
    用户代码未处理 HttpException
    无法连接到 SQL Server 数据库。

    直接浏览时报错:
    禁止在 SQL Server 中生成用户实例。请使用 sp_configure 'user instances enabled' 生成用户实例。

    自己查找问题,又发现
    在VS2005中任意打开一个asp.net网站-〉菜单栏 网站-〉ASP.NET 配置-〉提供程序-〉AspNetSqlProvider 测试
    也出现同样的错误。
    提供程序管理
    未能建立数据库连接。如果尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql 命令行实用工具创建和配置数据库,然后返回到此工具以设置提供程序。

    运行SDK下的aspnet_regsql启用向导配置,在出现选择服务器和数据库时(可能出现)
    未能查询Sql Server中的数据库名称的列表。
    在建立与服务器的连接时出错。

    解决方法:

    1.
    建议首先打开SQL Server Management Studio Express看看是否存在名为aspnetdb的数据库。

    2.
    若不存在,运行SDK下的aspnet_regsql启用向导配置生成数据库。
    开始 --> Microsoft .NET Framework SDK v2.0 --> SDK 命令提示 --> 输入aspnet_regsql --> 两次下一步后,输入服务器名,LQB-PC\SqlExpress,要和平时访问数据库是Data Source=后面的内容一致,默认的不含“\SqlExpress”,选好Windows身份验证后,点击下拉列表箭头能刷出来几个数据库名称,那么点击下一步,直至完成。这样,再次打开SQL Server Management Studio Express就会看到刚刚建立好的aspnetdb数据库。

    3.用SQL Server Management Studio Express建立一个登录名aspnetsa。



    对此用户的登陆属性中用户映射设置选中

    在服务器属性页设置

    在aspnetdb属性设置加添aspnetsa权限,我偷懒,就把全部权限都点了。

    这样,用户就建立好了

    4.接下来是还要修改连接字符串。
    在系统盘:\WINDOWS\Microsoft.NET\Framework\<版本号>\CONFIG下有web.config和mechine.config两个文件,
    其中会有一个文件中包含这样一段代码。

    <connectionStrings>
    <add name="LocalSqlServer" connectionString="Data Source=./SQLExpress;Integrated Security=true;AttachDBFileName=|DataDirectory|aspnetdb.mdf;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    这个连接字符串需要根据自己的情况修改,可以不采用原来的格式。这样修改下来。
    "Data Source=LQB-PC\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=false;UID=aspnetsa;PWD=xxxxxx"
    5.再次在VS2005中任意打开一个asp.net网站-〉菜单栏 网站-〉ASP.NET 配置-〉提供程序-〉AspNetSqlProvider 测试
    这是应该会出现:已成功建立到数据库的连接。如果成功,恭喜你!如果不成功,回到第三步,根据错误提示修改一下aspnetsa的权限等,并且检查一下你的连接字符串是否有错。

    6.现在作一个简单的例子测试一下:


    在vs2005中新建一个asp.net网站,先点调试,关闭,这时项目中会有一个Web.Config文件,打开,在最后的
    </system.web>
    </configuration>
    的前面添加
    <anonymousIdentification enabled="true"/>
    <profile enabled="true">
    <properties>
    <add name="MyNewProperty" allowAnonymous="true" />
    </properties>
    </profile>保存。

    在Default.aspx中拖入一个Label(ID:resultLabel),Button(ID:okButton),修改代码如下:
    protected void Page_Load(object sender, EventArgs e)
    {
    if (Page.IsPostBack == false)
    {
    Profile.MyNewProperty = "Red";
    }
    }
    protected void okButton_Click(object sender, EventArgs e)
    {
    resultLabel.Text = Profile.MyNewProperty;
    }
    调试运行。如果不出现本文开头的两种红字的错误,那么已经配置好了,这时点击按钮在标签中会显示Red,Congratulations!

    来源:http://www.cnblogs.com/lqb

  • 相关阅读:
    Leon-ai on WSL
    自动化测试工具
    创建自己的Spring Boot Starter
    Spring Boot内嵌Tomcat session超时问题
    Spring Boot
    Spring Cloud
    Socket编程之Tomcat模拟_采坑汇总
    访问者模式
    模版模式
    策略模式
  • 原文地址:https://www.cnblogs.com/scgw/p/1158272.html
Copyright © 2011-2022 走看看