如何将我的webrole应用程序(vb.net)连接到我的sql azure数据库?

问题描述:

我正在创建一个名为SGS的webforms中的新应用程序(webrole)。此应用程序正在使用vb.net构建。如何将我的webrole应用程序(vb.net)连接到我的sql azure数据库?

我在Windows 7中开发应用程序,并已将其部署到Windows Azure。

每次我需要改变一些东西的应用程序,我在本地进行修改,然后再发布到我的生产环境(我知道在蔚蓝的分期环境,但我者优先生产)。

该应用程序在开始点,现在我需要将它连接到我在SQL Azure中的数据库。

我构建了一个名为SGS的新数据库,它位于SQL Azure上,我想将它连接到我的应用程序。

即使当我在本地环境中,我也希望我的应用程序只连接到我的sql zure数据库。这样我就不需要我的本地电脑上有任何数据库。

我不知道如何做到这一点.....

连接字符串(ado.net)是对Azure是:

Server=tcp:mwjw08qhju.database.windows.net,1433;Database=SGS;User [email protected];Password=myPassword;Trusted_Connection=False;Encrypt=True; 

我的webconfig文件作为此信息:

<xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <system.diagnostics> 
    <trace> 
     <listeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <connectionStrings> 
    Server=tcp:mwjw08qhju.database.windows.net,1433;Database=SGS;User [email protected];Password=myPassword;Trusted_Connection=False;Encrypt=True; 


    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
<!-- <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial 
     Catalog=aspnet_1db0ca8ec36d4ba1852e5e4ec9947660;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />--> 


    <add name="DefaultConnection" connectionString=" <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet_1db0ca8ec36d4ba1852e5e4ec9947660;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
    <add name="aspnet_1db0ca8ec36d4ba1852e5e4ec9947660Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=aspnet_1db0ca8ec36d4ba1852e5e4ec9947660;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> 
    </authentication> 
    <membership defaultProvider="DefaultMembershipProvider"> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
     <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
     </providers> 
    </membership> 
    <profile defaultProvider="DefaultProfileProvider"> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
     </providers> 
    </profile> 
    <roleManager enabled="false" defaultProvider="DefaultRoleProvider"> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
     <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
     </providers> 
    </roleManager> 
    <sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
     <providers> 
     <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
     </providers> 
    </sessionState> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
</configuration> 

我需要更改以完成此操作?

非常感谢。

这个设置应该做你想要的。只有在稍微更复杂,如果你想连接到SQL Server本地运行时部署SQL Azure。

要从本地机器连接到SQL Azure,您需要有一个允许流量到达SQL Azure的防火墙规则。讽刺的是,post right below yours in Stack Overflow有一个回应,应该帮助你做到这一点(如果你还没有)。

如果你设置了防火墙规则,仍然有问题,回来后有什么不工作,错误信息的更多细节,等

改变服务和默认连接字符串您收到的连接字符串Azure SQL门户。

所以你会得到这样的:

<add name="ApplicationServices" connectionString="mwjw08qhju.database.windows.net,1433;Database=SGS;User [email protected];Password=myPassword;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient" /> 

希望帮助