小编Nat*_*son的帖子

Azure Webjob TextWriter记录器在我的方法中间处理

我正在使用带有Windows Azure Storage SDK的Webjob.当一个新项目出现在队列中时,我的类中会调用一个方法.根据SDK文档,如果我将TextWriter作为参数添加到我的方法中,SDK将为我提供一个我可以写入的TextWriter,它将显示在Webjob的日志记录基础结构中.这使得诊断问题和解决问题非常容易.

public async static void ProcessQueueMessage([QueueTrigger("queueName")]MyModelType model, TextWriter logger)
{

    await logger.WriteLineAsync(string.Format("Processing Item {0}", model.SasUrl));

    // Some work here

    await logger.WriteLineAsync(string.Format("Done Processing Item {0}", model.SasUrl));
}
Run Code Online (Sandbox Code Playgroud)

但是,很常见的是,在我的方法体内,TextWriter正在被处理掉.我在第二个logger.WriteLineAsync上遇到以下异常:

System.ObjectDisposedException was unhandled by user code
  HResult=-2146232798
  Message=Cannot write to a closed TextWriter.
  Source=mscorlib
  ObjectName=""
  StackTrace:
       at System.IO.__Error.WriterClosed()
       at System.IO.StringWriter.Write(Char[] buffer, Int32 index, Int32 count)
       at System.IO.TextWriter.WriteLine(String value)
       at System.IO.TextWriter.SyncTextWriter.WriteLine(String value)
       at System.IO.TextWriter.SyncTextWriter.WriteLineAsync(String value)
       at NameOfProject.Program.<ProcessQueueMessage>d__8.MoveNext() in c:\Dev\Path\To\Program.cs:line 173
  InnerException:
Run Code Online (Sandbox Code Playgroud)

我找不到其他人遇到这个问题,所以我无法想象SDK或webjobs基础设施中存在错误.

有没有办法告诉记录器是否在通话前被处理掉了?

有没有办法在我的方法中创建一个新的记录器,它将参与WebJobs记录子系统和UI?

azure-web-sites azure-webjobs azure-webjobssdk

9
推荐指数
1
解决办法
1299
查看次数

在我的构建服务器上直接安装Authenticode代码签名证书以创建生产签名构建是否可以接受?

直接在构建服务器上安装Authenticode代码签名证书以创建生产签名构建是否可以接受?我正在网上寻找一些建议或支持这种做法是合法的资源,前提是您已采取适当的步骤来保护构建服务器以及构建和部署构建的过程.

关于代码签名实践,我可以找到的所有"最佳实践"指南在建议的流程方面都是最重要的.对于签署单个程序集的简单操作,Microsoft的参考文档有多达6个服务器. http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/best_practices.doc

一些背景:

我的公司为其员工和直接客户创建简单的富客户端业务应用程序.我们不创建商业软件.我的构建服务器使用我公司严格的安全策略和程序进行物理安全和网络安全保护.只有组织中非常具体的人才能够在我的环境中开始构建.

我们当前的流程要求我通过大量的手动流程将构建/部署流程分解为多个阶段.我们使用物理设备存储Authenticode证书,要求用户输入的PIN才能访问.我们必须将需要代码签名的程序集/清单洗牌到指定的代码签名PC,这些PC也必须是物理安全的.

对我而言,传递物理令牌/设备并保留所有这些手动步骤的安全性较低.没有任何东西可以阻止物理访问令牌/设备的人签署任何他们想要的东西.至少,通过自动化,记录的,受控制的构建服务器环境,您可以知道签名的内容以及由谁签名.

deployment build code-signing tfsbuild authenticode

6
推荐指数
1
解决办法
1028
查看次数

您如何在本地对Azure App Services进行身份验证?

关于如何配置给定Azure App Service实例的身份验证属性的教程很多:

Api应用

扩展应用程序服务认证/授权

有用于配置Azure服务器端属性的指南:

AAD

脸书

推特

谷歌

微软帐户

我相信所有这些都在位于Azure应用服务组件前面的服务器端网关上设置属性。这种方法很好,因为您只需将用户的浏览器定向到〜/ .auth / login / XYZ即可启动登录流程。

但是,我无法弄清楚在开发时如何通过本地主机在PC上本地运行MVC应用程序和API应用程序来对这些方法进行身份验证。我没有在本地运行的网关。没有端点在监听localhost / .auth / login / XYZ。

那么,这是什么故事呢?您如何在那认证?具体来说,您如何发展,以便将需要在本地进行的任何操作都发布到Web和Api Apps,并在Azure的App Service生态系统中进行身份验证经验的工作?

azure azure-web-sites azure-mobile-services azure-api-apps azure-web-app-service

5
推荐指数
1
解决办法
1005
查看次数

Azure通知中心注册失败,带有一些标记格式

我在iOS上使用Xamarin对抗Azure Notification中心.事情一直很好.但是,我最近在我注册设备的标签集合中添加了一个新的TAG.

这是工作的缩写代码:

NSSet tags = new NSSet("Email-some@some.com");
if (tags != null) {
    Hub.RegisterNativeAsync(deviceToken, tags,(errorCallback) => {
        if (errorCallback != null) {
            new UIAlertView("RegisterNativeAsync error", "Unable to register for Push notifications", null, "OK", null).Show();
            return;
        }
    });                 
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我用这个内容替换第一行,RegisterNativeAsync FAILS:

NSSet tags = new NSSet("Email-no email provided for some user");
Run Code Online (Sandbox Code Playgroud)

我收到这个回复:

{URL:https ://MYNAMESPACE.servicebus.windows.net/MYNOTIFICATIONHUBNAME/Registrations/7659656661665513594-8491925189141493076-8?api-version =2013-04 }的URLRequest失败,状态码为:bad request

是否有关于标签的格式规则?我有许多其他标签,包含很多类型的内容,之前从未遇到过这个问题.

xamarin.ios apple-push-notifications xamarin azure-notificationhub

3
推荐指数
1
解决办法
1381
查看次数

如何将Azure Search的@ search.score作为自定义$ orderby子句的一部分

根据此页面,Azure搜索结果的默认排序是Azure自己的分数(降序).但是,您可以提供$ orderby子句,其定义为:

用逗号分隔的表达式列表,用于对结果进行排序.每个表达式可以是字段名称,也可以是对geo.distance()函数的调用.

我想按Azure的@ search.score desc,MyFieldOne,MyFieldTwo排序.但是,我无法弄清楚如何引用@ search.score"字段".

我尝试过以下方法:

$orderby=search.score+desc,MyFieldOne,MyFieldTwo
$orderby=@search.score+desc,MyFieldOne,MyFieldTwo
$orderby=%40search.score+desc,MyFieldOne,MyFieldTwo
Run Code Online (Sandbox Code Playgroud)

这些都导致http 502或400s.

如何在我的请求中引用@ search.score值?

azure-cognitive-search

3
推荐指数
1
解决办法
1431
查看次数