Tag: azure

在azure blob存储中原位创建zip文件

我将文件存储在blob存储帐户中的一个容器中。 我需要在第二个容器中创建一个zip文件,其中包含第一个容器中的文件。 我有一个使用worker角色和DotNetZip工作的解决方案,但因为zip文件最终可能是1GB大小我担心使用MemoryStream对象进行所有正在进行的工作并不是最好的方法。 我最关心的是内存使用和释放资源,因为这个过程可能每天发生几次。 下面是一些非常简化的代码,显示了worker角色的基本过程: using (ZipFile zipFile = new ZipFile()) { foreach (var uri in uriCollection) { var blob = new CloudBlob(uri); byte[] fileBytes = blob.DownloadByteArray(); using (var fileStream = new MemoryStream(fileBytes)) { fileStream.Seek(0, SeekOrigin.Begin); byte[] bytes = CryptoHelp.EncryptAsBytes(fileStream, “password”, null); zipFile.AddEntry(“entry name”, bytes); } } using (var zipStream = new MemoryStream()) { zipFile.Save(zipStream); […]

如何从带有guid id的集合中进行选择?

我有这个带有guid id的集合。 当我使用Azure Query Explorer并在上面的combobox中选择了集合时,它可以: SELECT * FROM c 但是当我尝试选择它时(来自查询exlorer和c#代码): SELECT * FROM 357fa002-dc7d-4ede-935a-6a0c80cf9239 c 我明白了: 语法错误,无效数值标记’357fa002’。 我试过把它放在guid附近的引号(单引号和双引号)但没有成功.. Microsoft文档声明此集合ID不会破坏任何规则: https : //docs.microsoft.com/pl-pl/azure/documentdb/documentdb-create-collection 集合名称必须介于1到255个字符之间,并且不能包含/ \#? 或尾随空间 如何使用它的id查询此集合?

在Visual Studio中调试x64 Azurefunction

我正在通过Visual Studio编写C#Azure函数。 此function通过博客存储触发,并使用x64 C ++ DLL处理blob。 问题是与visual studio一起安装的默认Azurefunction工具只有x86版本的exe函数(func.exe)。 我在这个URL看到,现在有x64版本: https : //github.com/Azure/azure-functions-core-tools/releases 问题是,默认情况下,Visual Studio正在我的机器上选择1.2.0版本的工具(C:\ Users \ acardy \ AppData \ Local \ AzureFunctionsTools \ Releases \ 1.2.0),我没有看到1.2 .0 x64在URL上发布。 有没有办法让Visual Studio选择一个我可以用x64版本修补的不同版本? 我目前正在运行Visual Studio 15.7.1版。 谢谢。

调试,未找到源,找不到AsyncExtensions.cs

我试图在azure上调试webjob,我收到以下错误:找不到源,找不到AsyncExtensions.cs。 我正在开发VS 2015,webjob是部署在Azure上的ASP.NET MVC解决方案的一部分。 我通过右键单击它并执行Publish as Azure webjob并选择Debug configuration来发布webjob。 我通过右键单击webjob并选择Debug,Start New Instance来启动调试。 当执行到达有问题的行时,我得到上面的错误而不是与有问题的行对应的错误。 这发生在几个不同的webjobs上。

在将.NET Core控制台应用程序部署到Azure WebJobs时加载hostpolicy.dll时出错

我已按照本教程将.NET Core控制台应用程序部署到Azure Web Service WebJob。 我的应用程序在本地运行没有任何问题(使用dotnet 1.0.0-preview2-003131 )但是当我尝试从Azure控制台运行它时出现以下错误: 无法从[D:\ local \ VirtualDirectory0 \ site \ wwwroot \ app_data \ jobs \ triggered \ PopcornExportWebJob \ hostpolicy.dll]加载dll,HRESULT:0x800700C1 从[D:\ local \ VirtualDirectory0 \ site \ wwwroot \ app_data \ jobs \ triggered \ PopcornExportWebJob]加载所需的库hostpolicy.dll时发生错误 Azure dotnet的版本是1.0.0-rc4-004771 ,hostpolicy.dll文件与我在本地使用的文件相同。 事实上,当我从Azure下载部署的zip时,当我在本地运行它时,它工作正常。 但它在Azure环境中失败了。 另外,这是我的project.json: { “publishOptions”: { “include”: [ “run.cmd” ] […]

如何从Azure webjob与Azure webapp进行通信?

我正在运行Azure webjob和Azure webapp。 作业定期运行,并且webapp中需要作业结果。 我如何在那里得到结果? 我尝试使用WCF netNamedPipeBinding但由于Azure webapps没有启动任务,我无法将net.pipe绑定添加到IIS网站,也无法启用net.pipe协议。 我现在使用basicHttpBinding但这个绑定暴露给我绝对不想要的整个互联网。 我只想在同一台机器上运行的webjob和webapp之间进行机器本地通信。 更正 :我认为我在Azure上工作但事实并非如此。 在Azure上运行时,我从webjob收到错误: An attempt was made to access a socket in a way forbidden by its access permissions 127.0.0.1:80 (使用basicHttpBinding )。 可能webapp有一个我不知道的内部端口号。

Application Insights不记录自定义事件

我在C#Controller中的ASP.NET核心应用程序中设置了Application Insights,它正在记录基本数据,如页面视图,响应时间等。但我想创建一些自定义事件并记录这些事件,但我无法获得任何他的自定义事件将显示在Azure门户中。 目前我正在使用Application Insights的免费版本。 非常直截了当 var appInsights = new TelemetryClient(); appInsights.TrackEvent(eventName, properties); eventName是一个字符串,包含我想要跟踪的自定义事件,属性是一个字典来跟踪一些其他属性。 在我运行应用程序并点击这些行几次后,我可以转到azure门户网站查看基本信息,但是当我进行搜索时,它说有0个自定义事件并通过以下方式搜索任何自定义事件name不返回任何结果。 我有一个类,下面有遥测的东西 public class ApplicationInsightsTracker : IApplicationTracker { private readonly TelemetryClient AppInsights = new TelemetryClient(); public void TrackEvent(string eventName, string userName, Dictionary properties = null) { AppInsights.Context.User.AccountId = userName; TrackEvent(eventName, properties); } public void TrackRequest(string eventName, string userName, TimeSpan elapsed, Dictionary properties […]

Azure移动服务错误:在程序集中找到多个具有名称的静态类作为引导程序

从Visual Studio 2013部署新版本的C#MobileService项目后,Azure日志中报告了以下错误: 在程序集中找到了多个名为“WebApiConfig”的静态类作为引导程序:{{My.MobileService.Project,myMobileService}}。 请仅提供一个类或使用“IBootstrapper”属性来定义唯一的引导程序。 实际上,如果提到的类文件有多个版本,如何在部署新版本之前清除它?

Azure Notification Hubs包是否与.NET Core兼容?

我正在使用.NET核心应用程序,我发现一些Azure软件包不兼容,例如NotificationHubs和SendGrid : Package Microsoft.Azure.NotificationHubs 1.0.5 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0) The dependency SendGrid.CSharp.HTTP.Client 2.0.4 does not support framework .NETCoreApp, Version=v1.0 我只尝试添加NotificationHubs和SendGrid。 我还没有尝试过任何ActiveDirectory包。 有没有人知道其中一些软件包是否会很快兼容? 或者也许我做错了什么? 或者,在.NET核心应用程序中是否有一种方法可以引用较旧的包? 谢谢!

如何使用超时Azure Web App的长响应来防止HttpWebRequest

我们在C#中使用HttpWebRequest从Azure Web App中的Internet资源获取数据。 问题是Azure限制了它保持连接活动的时间( 大约240秒 )。 由于我们的应用程序的性质,响应有时需要超过240秒。 发生这种情况时,网页将变为白色,“查看源代码”将显示零源代码(这使得此问题难以调试)。 以下是一些示例代码: webRequest = WebRequest.Create(PAGE_URL) as HttpWebRequest; webRequest.Method = “POST”; webRequest.ContentType = “application/x-www-form-urlencoded”; webRequest.CookieContainer = cookies; webRequest.Timeout = Timeout.Infinite; webRequest.KeepAlive = true; StreamWriter requestWriter2 = new StreamWriter(webRequest.GetRequestStream()); requestWriter2.Write(postString); requestWriter2.Close(); WebResponse response = webRequest.GetResponse(); Stream stream = response.GetResponseStream(); 添加webRequest.Timeout和webRequest.KeepAlive没有解决问题。 jbq在这个post中提到他通过每5秒发送一个“换行符”来解决这个问题,但是没有解释如何完成这个。 他正在回答有关Azure VM的问题,但我认为Azure Web App在我认为负责超时的负载均衡器方面会有类似的行为。 问题:我如何发送一个HttpWebRequest,然后发送另一个HttpWebRequest, 而前一个 HttpWebRequest使用空行运行以维持连接并阻止Azure负载均衡器(?)超时蔚蓝应用程序? 是否需要使用新的会话变量? 也许是异步方法? […]