我在App.config中为Azure WebJob提供了这些连接字符串
<add name="AzureWebJobsDashboard" connectionString="UseDevelopmentStorage=true"/>
<add name="AzureWebJobsStorage" connectionString="UseDevelopmentStorage=true"/>
因为我希望它为开发人员默认使用Azure存储模拟器。但是,当在Azure上使用这些WebJobs时,尽管我在Azure门户界面中设置了这些连接字符串,但它们似乎仍然指向本地存储:
我推断它仍指向本地存储,因为我收到此错误:
Microsoft.WindowsAzure.Storage.StorageException:无法连接到远程服务器---&gt; System.Net.WebException:无法连接到远程服务器---&gt; System.Net.Sockets.SocketException:尝试以其访问权限127.0.0.1:10001禁止的方式访问套接字 在System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,Socket s4,Socket s6,Socket&amp; socket,IPAddress&amp; address,ConnectSocketState state,IAsyncResult asyncResult,Exception&amp; exception)
在我们尝试连接到Azure存储的第一点的日志记录中。
我错过了什么吗?我是否为WebJobs正确设置了连接字符串?如何为开发人员将它们设置为默认为本地存储,但是为Azure中运行的应用程序提供了真正的连接字符串?
答案 0 :(得分:3)
首先,我确信Azure门户中的配置优先于web.config / app.config中的配置。
根据您上传的图片,我看到您为Azure存储连接字符串选择了Event Hub和SQL Database类型。如果为Azure存储连接字符串选择事件中心类型,则会出现一些问题,请将连接类型更改为自定义以解决此问题。
您可以在WebJob中打印出连接字符串以进行确认。
var host = new JobHost(config);
Console.WriteLine(config.DashboardConnectionString);
Console.WriteLine(config.StorageConnectionString);