我有一个dnn网站,我正在测试迁移到Azure网站。我想要做的是首先在Azure上重新创建数据库,然后只需将连接字符串更改为指向azure sql数据库。我很好地迁移了数据库。它存在于我的天蓝色门户网站中,据我所知,数据是准确的。
我之前的连接字符串是:
<add name="SiteSqlServer" connectionString="Data Source={SERVERNAME};Initial Catalog={DBNAME};User ID={USERNAME};Password={PASSWORD}" providerName="System.Data.SqlClient" />
我改为天蓝色连接如下:
<add name="SiteSqlServer" connectionString="Data Source=tcp:{SERVERNAME}.database.windows.net,1433;Database={DBNAME};User ID={USERNAME};Password={PASSWORD};Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
但是当我尝试加载网站时出现以下错误:
并且浏览器中显示的url是: 的 mysite.com/Install/UnderConstruction.htm
我不知道如何解决这个问题。数据库是否未连接或连接是否正常,另一个问题是否正在发生。我没有更改我的stie根目录中的任何文件。我只是将连接字符串更改为指向新的azure数据库。
我可以使用连接字符串的连接凭据从Sql Management Studio成功连接到此数据库。
如何判断这是数据库连接问题还是出现此错误的原因。
或者,我是否需要为托管该站点文件的外部IIS服务器IP启用防火墙访问?
所以我登录了我的sql azure数据库,并在监控页面中包含了更多指标。我可以看到由于被防火墙阻止而导致连接失败,如下所示。
所以我得到了我的网站文件所在的共享IIS服务器的IP地址,并添加了防火墙规则以允许该IP地址。这并没有解决问题。
跟进问题:有没有办法告诉防火墙阻止连接的IP地址是什么?
提前致谢
答案 0 :(得分:1)
您可以转到
来判断它是否是数据库连接问题/install/install.aspx
该页面将告诉您连接字符串是否失败。
答案 1 :(得分:1)
因此,问题是Sql Azure服务器中的防火墙设置。
请求连接到Sql Azure数据库的托管Web应用程序不是来自另一个Azure服务,而是来自单独的IIS服务器。当我为Web应用程序执行DMS / IP查找时,我获得了某个IP地址。我将其添加到防火墙规则中并且它不起作用,因此它必须使用另一个IP地址。
我做了什么:我打开了所有IP地址以确保任何IP都可以通过,这允许Web应用程序连接到Sql Azure数据库。以下是我启用所有IP的方式:
我使用http://centralops.net/co/获取Web应用程序所在的共享服务器的“网络IP范围”,并将其作为允许的IP范围输入。现在该网站正常连接。