小编Asb*_*erg的帖子

HttpWebRequest不传递凭据

我正在尝试使用HTTPWebRequest访问REST服务,并且在传递凭据时遇到问题,请参阅下面的代码.我读过它NetworkCredential不支持SSL,而且我正在访问HTTPS站点.有没有人知道类似于NetworkCredential支持SSL的类?

Uri requestUri = null;
Uri.TryCreate("https://mywebserver/webpage", UriKind.Absolute, out requestUri);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
NetworkCredential nc = new NetworkCredential("user", "password");
request.Credentials = nc;
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

c# asp.net httpwebrequest

32
推荐指数
3
解决办法
5万
查看次数

在Visual Studio 2010中进行调试时,忽略跨越AppDomains的异常

我在调试调用另一个AppDomain的应用程序时遇到问题,因为如果在其他AppDomain正在执行的任何操作中发生异常,则异常会冒泡并导致Visual Studio 2010无论如何都会中断.

我正确地包装了抛出a的方法调用try/catch,并且当我正常运行应用程序(ASP.NET MVC应用程序)时正常捕获异常,但是w3wp.exe在Visual Studio 2010中调试时,它总是在方法上中断调用那个抛出,即使应该被抓住,我也无法通过异常.

我试图装饰外部方法,其中try/catch和throw方法调用完成,[DebuggerStepThrough]但绝对没有效果.执行"继续(F5)","跳过(F10)"或"跳出(F11)"也不执行任何操作; Visual Studio只是暂停了一下,然后在相同的位置再次中断,但具有完全相同的异常.一旦Visual Studio在发生异常的位置停止,似乎绝对没有办法继续前进.

我正在做的就是调用assembly.GetExportedTypes()如果导出的类型引用了一个无法找到的程序集(我想忽略的情况),可能会抛出.抛出的异常是:

FileNotFoundException越过了本机/托管边界

我正在抓住FileNotFoundException,正如我所说的,这在运行应用程序时有效,但在调试时无效.如何让调试器理解我assembly.GetExportedTypes()抛出一个老鼠屁股?

更新:

我认为通过取消选中Visual Studio 2010中的选项"在异常时跨越AppDomain或托管/本地边界(仅限托管)"(在"调试">"常规"下)中的选项来解决此问题,但此问题刚刚再次出现.我已经撒了[DebuggerStepThrough],[DebuggerStepperBoundary]并且[DebuggerNonUserCodeAttribute]对所讨论的方法没有任何影响.

c# debugging exception appdomain

11
推荐指数
1
解决办法
4675
查看次数

我在哪里可以找到Travis-CI/Multi OS Build Matrix的'os'和'dist'选项列表

根据Travis-CI文档,您可以在不同的操作系统和分布中运行测试.

在撰写本文时,Google搜索不会显示所有可能的操作系统和分页选项的列表.所有人必须来自以下示例,它在构建矩阵子标题下提供以下内容:

有许多选项可供使用,使用matrix.include密钥对于包含任何特定条目至关重要.例如,此矩阵将使用Xcode 7.2将构建路由到Trusty beta构建环境和OS X映像:

matrix: include: - os: linux dist: trusty sudo: required - os: osx osx_image: xcode7.2

然而,有没有指导哪些选项可用于os,distosx_image键.有谁知道在哪里可以找到这些值?

github travis-ci

10
推荐指数
1
解决办法
1739
查看次数

类型推断在对可空和非可空int的'join'调用中失败

在我的Linq中,我试图将内部联接设置为可以为空的字段.员工和部门有关系,部门可能有EmployeeID或者可能有null.那么什么是我的连接,如果我只想要满足内部连接的记录(没有结果为null EmployeeIDs):

var result = from emp in employees
             join dept in departments
             on new { Source = emp.EmployeeID }
             equals new { Source = dept.EmployeeID };
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

join子句中某个表达式的类型不正确.在"加入"调用中类型推断失败.

谢谢

c# linq entity-framework nullable non-nullable

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

IIS7和HTTP状态代码处理

我试图在IIS7(集成模式)中对错误的渲染进行完全的程序控制,因此我有一个硬核头痛.我想要做的是给出错误(找不到页面,内部服务器错误,未经过身份验证等),使用正确的HTTP状态代码将整个请求传输到自定义ASPX或HTML(我更喜欢后者).

我想要的是IIS7没有给出我设置HTTP状态代码的废话.我不想要它的错误处理.当我设置时Response.StatusCode = (int)HttpStatusCode.NotFound,我想要的不是IIS来呈现自己的错误页面,而是可能将请求转移到另一个文件.

我已经让这个静态配置工作了:

<configuration>
  <system.webServer>
    <httpErrors>
      <clear />
      <error statusCode="404" path="/errors/404.html" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

虽然这很有效,但鉴于错误情况,它并没有让我以编程方式控制如何处理响应.配置是一个很好的后备,但我真的希望能够在某些情况下设置Response.StatusCode和呈现与配置完全不同的东西404.html(如果我们收到JSON响应Accept: application/json),但IIS7不会让我.不是机会.

那我该怎么办?我试图设置HttpResponse.TrySkipIisCustomErrors Property,但这看起来像一个巨大的黑客,似乎并不一致.将此属性设置为true确实是建议的最佳做法,以获得我想要的行为?

目前,我留下的感觉只不过是对IIS7的强烈仇恨.任何人都可以通过证明我只是愚蠢并且我确实可以完全控制HTTP堆栈来帮助我解决这个问题吗?

iis-7 http http-status-codes

8
推荐指数
1
解决办法
3184
查看次数

为多个重命名的两个文件创建Git补丁

我想将两个文件从一个存储库移动到另一个存储库.这些文件最初添加为:

  1. /src/init/Price.cs
  2. /tests/init/PriceTests.cs

这两个文件后来被重命名为:

  1. /src/init/PriceValue.cs
  2. /tests/init/PriceValueTests.cs

然后转到:

  1. /src/moved/PriceValue.cs
  2. /tests/moved/PriceValueTests.cs

我试图通过这种描述为这些文件创建一组补丁,但我不确定如何传递文件存在的六种不同路径.

我设法找到影响PriceValue.cs(跨重命名和移动)的所有提交ID ,但将这些ID传递给Git失败,并显示以下错误消息:

$ git format-patch -o /tmp/pricevaluepatches $(git log --all dfeeb 6966b 9f882 …)
-bash: /usr/local/bin/git: Argument list too long
Run Code Online (Sandbox Code Playgroud)

那么,我如何为此创建一组补丁,它只包含对所提到文件的更改,但是在一个重命名和每个文件的一次移动中包含它?

git patch file-rename git-patch file-move

8
推荐指数
2
解决办法
444
查看次数

Application_Start与OnInit对比构造函数

自从我几年前开始编写经典的ASP 12(左右)以来,我已经完成了这一切,我从来没有找到一个很好的解决方案,因为ASP和ASP.NET的架构一直是不良做法的沼泽,魔术共享单身,等我最大的问题是用HttpApplication其非事件的事件(对象Application_Start,Application_End等等).

如果你想在HTTP应用程序的整个生命周期内做一次Application_Start事情,那么这是显而易见的.对?不完全是.首先,这本身不是一个事件,它是一个神奇的命名约定,如果遵循这个约定,会导致该方法在IIS创建的每个AppDomain上调用一次.

除了魔术命名惯例是一种可怕的做法,我开始认为这可能是StartHttpApplication对象上不存在事件的原因.所以我已经尝试过确实存在的事件,例如Init.嗯,这也不是一个真正的事件,它是一个可以覆盖的方法,这是下一个最好的事情.

似乎该Init()方法是针对HttpApplication对象的每个实例化调用的,每个AppDomain发生的次数不止一次.这意味着我不妨将我的启动逻辑放在HttpApplication对象的构造函数中.

现在我的问题是,为什么我不应该将我的启动逻辑放在构造函数中?为什么甚至Init()存在,我需要关心什么Application_Start?如果我这样做,任何人都可以解释为什么HttpApplication对象中的这个伪事件没有适当的事件或可覆盖的方法?

任何人都可以向我解释为什么在一个典型的ASP.NET应用程序中,我HttpApplication创建了8个实例(这会导致构造函数Init运行多次,当然;这可以通过锁定和调用的共享静态布尔值来缓解initialized)当我的应用程序只有一个AppDomain?

asp.net lifecycle httpapplication app-startup

7
推荐指数
2
解决办法
2216
查看次数

RecursiveDirectoryIterator对"打开的文件太多"抛出UnexpectedValueException

以下代码:

$zip = new ZipArchive();

if ($zip->open('./archive.zip', ZIPARCHIVE::CREATE) !== TRUE) {
    die ("Could not open archive");
}

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("./folder/"));

foreach ($iterator as $key => $value) {
  try {
    $zip->addFile(realpath($key), $key);
    echo "'$key' successfully added.\n";
  } catch (Exception $e) {
    echo "ERROR: Could not add the file '$key': $e\n";
  }
}

$zip->close();
Run Code Online (Sandbox Code Playgroud)

如果您尝试迭代的子文件夹中有太多文件,则会引发以下异常:

Uncaught exception 'UnexpectedValueException' with message 'RecursiveDirectoryIterator::__construct(./some/path/): failed to open dir: Too many open files' in /some/other/path/zip.php:24
Stack trace:
#0 [internal function]: RecursiveDirectoryIterator->__construct('./some/path/')
#1 /some/other/path/zip.php(24): RecursiveDirectoryIterator->getChildren() …
Run Code Online (Sandbox Code Playgroud)

php iteration iterator

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

面向对象的CSS

我看过这个关于面向对象的css的演示文稿,但我想我要么不理解它,要么不理解使用OO CSS的好处:

示例HTML:

<div class="border-1 bg-2 color-1 font-1">
</div>
Run Code Online (Sandbox Code Playgroud)

CSS示例:

/* borders */
.border-1 { border: 1px solid red; }

/* backgrounds: */
.bg-2 { background: yellow; }

/* other sections */
Run Code Online (Sandbox Code Playgroud)

我看到能够快速更改多个元素的样式的优势,例如,能够切换颜色方案将非常有用.

但实际上,您在HTML中定义样式/外观,或者至少是其中的一部分.当然,它比使用style属性更好,因为您仍然可以为一组组交换样式.

关键是,你是在HTML中定义样式组,但我了解到你应该在HTML中创建"逻辑"组(例如class="nav-item"/ class="btn submit-btn"),CSS完全应用样式并定义哪些元素属于"风格" "观点(例如.nav-item, .submit-btn { background: red; }).

也许我完全误解了这个概念.但是,我仍然不知道构建CSS的好方法.

html css oop oocss

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

Azure SQL 读取横向扩展功能:监视只读副本上的查询

当在 Azure SQL 的高级层上启用只读副本时,我们遇到了一些性能问题,这非常奇怪且无法解释。我可以使用以下内置函数查找是否正在只读副本上执行查询:

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability')
Run Code Online (Sandbox Code Playgroud)

READ_ONLY如果针对只读副本运行以上查询,则会返回。但是,没有办法监视只读查询

根据以下文章,只读副本的预览版不支持扩展事件和查询存储,而以下文章建议读取横向扩展功能现已普遍可用。尽管如此,我仍无法监控在高级 SQL 数据库层的只读副本上执行的查询。

我可以看到一个用户语音项目。还有其他选项可以监控只读工作负载吗?

sql-server azure-sql-database

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

为什么有些名称,如none和hidden以及href与src在CSS和HTML中如此不一致?

嗨,这更像是一个概念性的问题.W3C是如何决定使用hiddenvs. none?我问,因为我是一名ESL人(英语作为第二语言).如果我正在使用overflow: hidden, overflow: none也可以使用.这同样适用于display: nonevisibility: hidden.不能只是一直display: nonevisibility: none,因为真正做不同的是性能displayvisibility而不是他们的价值.这更像是一个解释请求.例如,发生了类似的"奇怪"事情:

<script src="file.js">
Run Code Online (Sandbox Code Playgroud)

<link href="file.css">
Run Code Online (Sandbox Code Playgroud)

他们为什么不同?我理解所有这些在技术上如何工作,我只是好奇他们如何决定属性的名称.

谢谢.

html css w3c naming

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

NHibernate SchemaExport和Configure()catch-22

我想在新项目中使用DDD并首先为我的类建模,然后根据类库生成数据库模式.我的计划是使用NHibernate hbm2ddl工具执行此操作SchemaExport.

问题在于我无法使用它SchemaExport,因为它让我遇到了一个奇怪的catch-22问题.SchemaExport需要一个Configuration对象本身需要一个有效的NHibernate配置文件以及一组数据库映射.

这里的catch-22是当我执行Configure()时,它会抱怨"Could not determine the name of the table for entity 'MyEntity'; remove the 'table' attribute or assign a value to it."因此该Configure()方法需要表存在,而SchemaExport应该基于Configuration我无法创建的表来创建它,因为表不是没有'存在.

那么,我究竟应该如何创建一个有效的NHibernate,Configuration其中包含SchemaExport实际做一些有用的事情所需的映射而不Configure()抛出并抱怨它无法找到要创建的表SchemaExport?是否有"模式"我可以设置Configuration对象,因此它不会检查数据库中是否存在给定的表,或者还有其他我需要做的事情?

.net nhibernate schemaexport hbm2ddl

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

将Action <T>公开为Action <object>

我正在创建一个框架,其中包含一个围绕库(特别是SharpBrake)的包装器,它通过反射执行与SharpBrake的所有交互,因此对我的框架的第三方没有硬件依赖库.

如果我的框架的第三方想要使用SharpBrake,他们可以将SharpBrake.dll填充到bin文件夹中,但如果他们不这样做,他们就可以忘掉它.如果我的框架明确引用了SharpBrake类型,那么我的框架用户会在SharpBrake.dll缺失的运行时期间遇到异常,这是我不想要的.

因此,我的包装器首先从磁盘加载SharpBrake.dll,找到AirbrakeClient类型,并AirbrakeClient.Send(AirbrakeNotice)在私有字段中存储指向该方法的委托.然而,我的问题是,由于该Send()方法需要一个AirbrakeNotice对象而我无法AirbrakeNotice直接引用该对象,我需要以某种方式将该Send()方法转换为Action<object>.

我有一种强烈的感觉,这是不可能的,但我想在解决暴露Delegate和使用之前探索所有选项DynamicInvoke(),我认为这远非最佳,性能方面.我想做的是以下内容:

Type clientType = exportedTypes.FirstOrDefault(type => type.Name == "AirbrakeClient");
Type noticeType = exportedTypes.FirstOrDefault(type => type.Name == "AirbrakeNotice");
MethodInfo sendMethod = clientType.GetMethod("Send", new[] { noticeType });
object client = Activator.CreateInstance(clientType);
Type actionType = Expression.GetActionType(noticeType);
Delegate sendMethodDelegate = Delegate.CreateDelegate(actionType, client, sendMethod);

// This fails with an InvalidCastException:
Action<object> sendAction = (Action<object>)sendMethodDelegate;
Run Code Online (Sandbox Code Playgroud)

但是,此操作失败,并出现以下异常:

System.InvalidCastException:无法将类型为'System.Action`1 [SharpBrake.Serialization.AirbrakeNotice]'的对象强制转换为'System.Action`1 [System.Object]'.

显然,因为sendMethodDelegate是一个Action<AirbrakeNotice> …

c# generics reflection delegates

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