小编Dav*_*den的帖子

如果缺少必需的标头,返回的最合适的HTTP状态代码是什么?

我读了如果请求缺少必需参数,我应该使用什么HTTP状态响应代码?但它没有具体询问标题,似乎没有达成共识.

此问题的上下文假定验证成功.我目前偏爱400(虽然这感觉不对,因为这不是"格式错误的语法")或403.鉴于403的描述:

服务器理解请求,但拒绝履行请求.授权无效,请求不应重复.如果请求方法不是HEAD并且服务器希望公开为什么请求没有得到满足,那么它应该描述实体中拒绝的原因.

这对我来说最有意义.

有人可以赐教吗?谢谢.

http-status-codes http-headers http-status-code-403 http-status-code-400

34
推荐指数
1
解决办法
1万
查看次数

是否有建议的方法使用MSBuild配置针对TeamCity中多个框架的NuGet包?

我已经阅读了一些帖子(参见下面的参考资料),还没有找到特定于我的技术堆栈的最佳实践指南.

目标:创建一个NuGet包,其目标是使用MSBuild和NuGet通过TeamCity从单个.csproj文件构建的多个.NET框架.

约束:

  1. 仅从VCS中提取代码一次.
  2. 所有已编译的程序集的版本都应相同.
  3. 单个.csproj(不是每个目标框架一个).

我有两种方法:

  1. 创建单个构建配置.它将包含三个构建步骤:编译.NET 3.5,编译.NET 4.0,使用NuGet打包.每个构建步骤都取决于最后一个成功.我用这种方法看到的唯一真正的问题(希望有一个我不知道的解决方案)是每个构建步骤都需要自己的一组构建参数(例如,system.TargetFrameworkVersion和system.OutputPath)来指定DLL的唯一位置(例如,bin\release\v3.5和bin\release\v4.0),以便NuGet包步骤能够根据.nuspec文件中的Files部分执行其操作.

  2. 创建多个构建配置.每个构建步骤的一个构建配置.使用这种方法,很容易解决TargetFrameworkVersion和OutputPath构建参数问题,但我现在必须创建快照依赖项并在构建中共享程序集版本号.它也会占用构建配置插槽,这对我们来说是好的(但不是最佳的),因为我们拥有Enterprise许可证.

选项#1似乎是显而易见的选择.选项#2感觉很脏.

所以我的两个问题是:

  1. 是否可以创建构建步骤特有的参数?
  2. 还有第三种更好的方法吗?

参考文献:

  1. 多框架NuGet构建带有内部依赖关系管理的符号
  2. Nuget - 打包一个包含多个项目的解决方案(针对多个框架)
  3. http://lostechies.com/joshuaflanagan/2011/06/23/tips-for-building-nuget-packages/
  4. http://msdn.microsoft.com/en-us/library/hh264223.aspx
  5. /sf/answers/75835371/
  6. http://confluence.jetbrains.com/display/TCD7/Configuring+Build+Parameters
  7. http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

msbuild teamcity .net-framework-version multitargeting nuget

21
推荐指数
2
解决办法
3655
查看次数

IExceptionLogger是否弃用Web API 2中对ExceptionFilterAttribute的需求?

在关于实施IExceptionLogger(http://www.asp.net/web-api/overview/testing-and-debugging/web-api-global-error-handling)的官方文件的讨论之后,该文件链接到(现在已过时) ?)关于实施ExceptionFilterAttribute(http://www.asp.net/web-api/overview/testing-and-debugging/exception-handling)的文章,ExceptionFilterAttribute如果您注册服务,是否有任何理由注册全局IExceptionLogger

我做了,并且在调试控制器操作中生成的异常时,两个实现都处理了异常.因此IExceptionLogger,文章中引用的所有原因都是优越的.我们应该考虑ExceptionFilterAttribute弃用吗?如果没有,为什么不呢?

exception-handling asp.net-web-api2

12
推荐指数
1
解决办法
1046
查看次数

异步日志记录抛出NullReferenceException

我试图使用AsyncTargetingPack异步将一些信息记录到针对.NET 4.0的MVC 4控制器操作中的SQL Server.我会直接跳到.NET 4.5,但我的应用程序存在于Azure中,我们仍在等待更新 ...

此代码按预期工作(一行写入我的数据库,没有抛出异常):

public class SystemActionLogger : ISystemActionLogger
{
    private readonly ActionBlock<Tuple<SystemAction, object>> actionBlock;

    public SystemActionLogger(ISystemActionLogEntryRepository repository)
    {
        actionBlock = new ActionBlock<Tuple<SystemAction, object>>(
            entry => TaskEx.Run(async () =>
                {
                    string data = await JsonConvert.SerializeObjectAsync(entry.Item2);
                    await repository.PersistAsync(new SystemActionLogEntry(entry.Item1, data));
                }));
    }

    public void Log(SystemAction systemAction, object data)
    {
        actionBlock.Post(new Tuple<SystemAction, object>(systemAction, data));
    }
}
Run Code Online (Sandbox Code Playgroud)

并且此代码抛出NullReferenceException:

public class SystemActionLogger : ISystemActionLogger
{
    private readonly ActionBlock<Tuple<SystemAction, object>> actionBlock;

    public SystemActionLogger(ISystemActionLogEntryRepository repository)
    {
        actionBlock = new ActionBlock<Tuple<SystemAction, object>>(async entry …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0 task-parallel-library tpl-dataflow

9
推荐指数
2
解决办法
6133
查看次数

是否有一个NuGet包在.NET中包含语义版本解析器?

我找到了这篇博文和相关的Gist.作者似乎没有创建相应的NuGet包.

有人知道已存在的NuGet包吗?

作为参考,这里是语义版本控制的规范.

.net c# parsing semantic-versioning

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

为什么这个LINQ分组的计数为3而不是2?

鉴于以下课程:

public class WeekOfYear : IEquatable<WeekOfYear>, IComparable<WeekOfYear>
{
    private readonly DateTime dateTime;
    private readonly DayOfWeek firstDayOfWeek;

    public WeekOfYear(DateTime dateTime)
        : this(dateTime, DayOfWeek.Sunday)
    {
    }

    public WeekOfYear(DateTime dateTime, DayOfWeek firstDayOfWeek)
    {
        this.dateTime = dateTime;
        this.firstDayOfWeek = firstDayOfWeek;
    }

    public int Year
    {
        get
        {
            return dateTime.Year;
        }
    }

    public int Week
    {
        get
        {
            return CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, firstDayOfWeek);
        }
    }

    public bool Equals(WeekOfYear other)
    {
        return Year == other.Year && Week == other.Week;
    }

    public int CompareTo(WeekOfYear other)
    {
        if (Year …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects

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

使用经过转换的 web.config 发布后更新 Azure CSPKG

我的构建:

  1. 使用 msbuild 构建(/t: build)
  2. 使用 msbuild 发布(/t:发布)
  3. 带有 nuget 的软件包
  4. 使用章鱼部署

生成包含以下文件的工件(nuget 包):

  • Azure.ccproj.cspkg
  • 服务配置.生产.csfg
  • Web.config(将在通过八达通部署期间进行转换)

cspkg 是一个有效的、可部署的包。问题在于它包含一个预转换的 web.config,因为转换发生在部署时。有关转换变量替换的信息,请参阅 Octopus 文档以供参考。

如何使用驻留在部署包中的转换后的 web.config 覆盖 cspkg 内的 web.config?

我可以使用 powershell 和完整的 .net 框架。

或者,如果解压 cspkg、覆盖文件然后重新打包更有意义,我认为这是可以接受的。我也不知道该怎么做。

我知道Save-AzureServiceProjectPackage存在,但我无法让它运行并且缺少文档。

msbuild powershell azure octopus-deploy web.config-transform

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

cspack.exe是否支持.NET 4.6 *?

根据针对.NET和API的Azure SDK的支持和退休信息,SDK 2.6引入了对.NET 4.6的支持。尽管姐妹文章“ 在云服务角色上安装.NET”包括显式安装.NET 4.6.2的安装脚本,暗示Web /工作者角色支持该脚本,但列出的SDK均未明确提及4.6.2 。

当我尝试将解决方案从.NET 4.5.1(使用Azure SDK 2.8)升级到.NET 4.6.2时,我还修改了RoleProperties.txt文件,其中包括以下几行:

TargetFrameWorkVersion=v4.5.1 RoleTargetFramework=v4.5.1

TargetFrameWorkVersion=v4.6.2 RoleTargetFramework=v4.6.2

在调用后导致以下错误cspack.exe

不支持的.Net Framework v4.6.2

我尝试将更4.6.2改为简单4.6,但同样失败。

所以我的问题是:

  1. 您如何正确使用.NET 4.6.2 cspack.exe
  2. 是否有必要将这些属性设置为4.6*或是否可以安全地保留它们,4.5.1因为您cspack.exe不会抱怨?

azure azure-web-roles cspack .net-4.6

5
推荐指数
0
解决办法
393
查看次数

多线程网络刮刀?

我一直在考虑让我的web scraper多线程,而不是像普通的线程(例如,线程scrape =新的线程(函数);)但是像线程池这样的东西可以有很多线程.

我的刮刀通过使用for循环来刮擦页面.

for (int i = (int)pagesMin.Value; i <= (int)pagesMax.Value; i++)
Run Code Online (Sandbox Code Playgroud)

那么我怎么能用线程池这样的多线程函数(包含循环)多线程?我以前从未使用过线程池,我见过的例子对我来说很混乱或模糊.


我已经将我的循环修改为:

int min = (int)pagesMin.Value;
int max = (int)pagesMax.Value;
ParallelOptions pOptions = new ParallelOptions();
pOptions.MaxDegreeOfParallelism = Properties.Settings.Default.Threads;
Parallel.For(min, max, pOptions, i =>{
    //Scraping
});
Run Code Online (Sandbox Code Playgroud)

会有用还是我弄错了?

c# multithreading .net-4.0 scraper web

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