小编Cat*_*h22的帖子

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
查看次数

是否可以配置Azure网站SSL协议和密码

我希望能够在Azure网站(或Web应用程序)上禁用TLS 1.0协议和RC4密码,我无法弄清楚它是否可能.(编辑:我知道在Azure网站上默认禁用SSL 3.0,但我特别想禁用TLS 1.0)

我知道要更新哪些注册表设置,但问题当然是我无法访问操作系统.

还有的NWebsec启动任务,使您可以配置Web角色(或云服务),但我的理解是,这种解决方案并不适用于Web应用程序.

有没有解决方法?

ssl azure azure-web-sites

7
推荐指数
1
解决办法
5493
查看次数

如何使用C#从XML中删除重复的属性

我正在从第三方提供程序解析一些XML文件,不幸的是,它并不总是格式良好的XML,因为有时某些元素包含重复的属性.

我无法控制源,我不知道哪些元素可能有重复的属性,也不知道重复的属性名称.

显然,将内容加载到XMLDocument对象中会在重复属性上引发XmlException,因此我可以使用a XmlReader逐个元素地逐步执行XML元素,并在到达有问题的元素时处理重复的属性.

然而,在我有机会对元素的属性进行插入之前,它XmlException被提升了reader.Read().

以下是演示此问题的示例方法:

public static void ParseTest()
{
    const string xmlString = 
        @"<?xml version='1.0'?>
        <!-- This is a sample XML document -->
        <Items dupattr=""10"" id=""20"" dupattr=""33"">
            <Item>test with a child element <more/> stuff</Item>
        </Items>";

    var output = new StringBuilder();
    using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
    {
        XmlWriterSettings ws = new XmlWriterSettings();
        ws.Indent = true;
        using (XmlWriter writer = XmlWriter.Create(output, ws))
        {
            while (reader.Read())   /* Exception throw here when Items element …
Run Code Online (Sandbox Code Playgroud)

c# xml validation html-agility-pack

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

X-Frame-Options标头在防止恶意框架方面有多大用处?

添加X-Frame-Options DENY到响应头有助于防止网页的恶意框架,作为一种解决方案,它肯定比客户端JavaScript解决方案更好.

但它有多有用呢?所有(现代)浏览器都支持它,是否可以被劫持您网站的黑客绕过?

security iframe http-headers

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

ad-hoc只读查询是否存储在SQL Server事务日志中?

在SQL Server 2008中配置了数据库恢复模型full,是查询等

从TableName中选择col1,col2,col3

记录到事务日志文件.

换句话说,我可以使用事务日志备份确定特定日期在数据库上运行的查询吗?

sql-server transaction-log sql-server-2008

4
推荐指数
1
解决办法
1812
查看次数