我最近在Azure上建立了我的第一个网站.目前,它基本上只是带有Home和Account控制器的标准MVC4模板网站.在Azure中,我有一个网站和一个SQL数据库.我可以从SSMS访问SQL Azure数据库,并设置了一个登录和用户,供我的网站使用.
在我的开发环境中,指向我的开发数据库,我可以正常访问/ Account/Login页面.我可以注册,我可以在我的本地数据库中看到新用户.我还可以更改连接字符串以将我的开发网站指向我的SQL Azure DB,然后我再次访问/帐户/登录并注册新用户.然后,我可以在SQL Azure DB中看到这些新用户.
将网站部署到Azure时会出现问题.我有一个与我的publishsettings文件关联的转换配置,我可以在输出窗口中看到,在将站点发布到Azure时,在部署期间应用了此转换.这会将本地开发数据库连接字符串修改为SQL Azure连接字符串.我还验证了这个SQL Azure连接字符串是在部署的实际web.config文件中(使用FileZilla FTP来检索部署的实际web.config).我可以在[mysite] .AzureWebsites.net上访问我网站的主页,但是当我点击登录链接转到/帐户/登录页面时,我收到以下错误:
[ArgumentException: Format of the initialization string does not conform to specification starting at index 0.]
System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue) +5313265
System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) +124
System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) +95
System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) +59
System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) +24
System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) +167
System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) +61
System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) +66 …Run Code Online (Sandbox Code Playgroud) 我有一个 lambda 函数,它在生产中很少被调用,但它是面向公众的,所以我想避免冷启动。所以我想我可以使用预配置的并发来避免这个问题。我的 Cloudformation 模板如下所示:
QuoteLinkServiceFunction:
Type: AWS::Serverless::Function
Properties:
# other lambda properties...
ProvisionedConcurrencyConfig:
ProvisionedConcurrentExecutions: 1
Run Code Online (Sandbox Code Playgroud)
当我在我的测试环境中创建这个堆栈时(我是唯一的用户,所以没有其他调用同时发生),当我在几个小时后返回使用这个函数时仍然会遇到冷启动。由于 lambda 现在已预热,因此在第一次调用之后立即进行的后续调用会运行得更快。
lambda 控制台显示此函数的别名实际上已设置为预配并发为 1,并且我已验证 ALB 目标组指向别名。那么为什么我仍然冷启动?