小编Sim*_*een的帖子

"System.MissingMemberException:无法找到服务器工厂"启动TeamCity中自托管的Microsoft.Owin

当Teamcity运行启动自托管Web应用程序的集成测试时,测试将失败并显示错误:

System.MissingMemberException: The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener
Run Code Online (Sandbox Code Playgroud)

抛出此错误的代码是:

var webApp = WebApp.Start<Startup>("http://*:52203/")
Run Code Online (Sandbox Code Playgroud)

使用Visual Studio(使用Resharper测试运行器)执行测试时运行正常.Teamcity配置为使用JetBrains.BuildServer.NUnitLauncher.exe可执行文件来运行测试.

我看到很多关于这个错误的帖子与Microsoft.Owin.Host.HttpListener.dllbin 有关,因为bin\debug或bin\release文件夹中没有.我可以确认此文件(以及随附的.xml文件)都存在于TeamCity buildAgent使用的bin\release文件夹中.没有bin\debug文件夹.

.net teamcity self-hosting owin

13
推荐指数
2
解决办法
4794
查看次数

即使不提交,也会调用AngularJS ng-submit事件处理程序

我正在尝试使用angular-ui设置表单验证.我想在提交之前检查表单是否有效,所以我已经设置了一个ng-submit事件处理程序.

但在实现任何验证之前,我注意到即使不提交表单也会调用事件处理程序.在下面的示例中,单击Add Item按钮时会调用它:

<div ng-app="app">
    <div ng-controller="ctrl">
        <form name="myForm" ng-submit="sub()" novalidate>                    
            <div ng-repeat="item in items">
                <ng-form name="row">
                    <input type="text" name="value" ng-model="item.value" required />                    
                </ng-form>
            </div>         
            <button ng-click="addItem()">Add Item</button>        
            <input type="submit" value="Submit"/>
        </form>
    </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

和JS:

 var app = angular.module('app', ['ng']);

 app.controller('ctrl', ['$scope', function($scope) {
     $scope.items = [];
     $scope.addItem = function() {
         $scope.items.push({ value: $scope.items.length });
     };

     $scope.sub = function() {
         alert("submitted?");
     };
  }]);
Run Code Online (Sandbox Code Playgroud)

看到我的小提琴:

http://jsfiddle.net/UvLBj/2/

这应该发生吗?我觉得ng-submit不仅仅是在表单提交上被解雇了......我做错了吗?

angularjs

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

阅读Outlook .msg文件

我相信读取Outlook .msg文件(为了获取主题,附件等额外元数据)的唯一方法是使用Outlook API - Application.Session.OpenSharedItem()方法.

如果是这种情况,那么我正在寻找在我们的应用服务器上运行此代码的方法,该服务器没有安装MS OFfice或MS Outlook.我收到了错误

System.ArgumentException: progId not found. Outlook.Application
Run Code Online (Sandbox Code Playgroud)

这当然是由于缺少Outlook应用程序.

有没有办法只安装一个DLL或什么,以使OpenSharedItem方法工作?如果可能的话,我不想安装完整的客户端.

或者,有没有办法解析.msg文件而不需要像Outlook这样的重要依赖项?

c# com outlook

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

在多个Web应用程序上使用ASP.Net Identity

我在同一个IIS(不同的上下文根)上托管了几个应用程序,这些应用程序都使用Microsoft.ASPNet.Identity 2.1 NuGet包进行保护.但是,当我登录其中一个应用程序时,下次访问任何其他应用程序会提示我再次登录.我不能同时登录其中一个应用程序.

我猜他们都使用相同的cookie来存储登录令牌,所以当你登录一个应用程序时,它会重置cookie,这对于对其他应用程序的请求变得无效.

我有什么选择解决这个问题?我不介意必须单独登录每个应用程序,因此每个应用程序是否可以配置为使用不同的cookie?

或者,每个应用程序实际上在数据库中共享相同的用户表,因此可以对其进行配置,以便在您登录其中一个应用程序时,其他应用程序也会登录.

asp.net-mvc asp.net-mvc-4 asp.net-web-api asp.net-identity

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

在Quartz.Net作业中使用的DBContext的Ninject范围

在执行Quartz.Net作业实现期间,通过Ninject依赖解析器实例化的DbContext实现使用的最佳范围是什么?如果我使用了线程范围,如果使用Quartz线程池中的相同线程多次执行作业,是否会提供相同的DbContext实例?

我想要一个范围,这意味着每次触发作业时我都会获得一个(并且只有一个)DbContext的新实例.

ninject quartz.net dbcontext

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

合并git中的XML文件更改

将一个git分支合并到另一个git分支时,合并冲突的常见来源是我的一个XML文件,其中在两个分支上的文件的同一插入点处添加了新的(但不同的)XML.在我的情况下,我希望git在合并结果中自动包含来自两个分支的新插入的XML,并且我不关心哪个分支的更改插入到另一个上面.

是否可以配置git来执行此操作?

编辑:我发现我可以放线:

*.xml   merge=union
Run Code Online (Sandbox Code Playgroud)

进入.gitattributes文件 - 但这不是我想要的方式.

在我的工作分支上说,这个XML已被添加:

<itemlist id="1">
   <item id="1"></item>
</itemlist>
Run Code Online (Sandbox Code Playgroud)

然后在我打算合并到我的分支上,已添加 - 在完全相同的位置:

<itemlist id="2">
   <item id="2"></item>
</itemlist>
Run Code Online (Sandbox Code Playgroud)

然后,git注意到两组更改都以相同的文本结尾(即带有结束标记的行).它似乎认为,因为双方都添加了相同的文本,它不应该在合并中复制该文本,因此它只会在合并期间插入以下内容:

<itemlist id="2">
   <item id="2"></item>
Run Code Online (Sandbox Code Playgroud)

这当然导致无效的XML.

我是否可以采取进一步的配置来关闭这个"仅仅合并 -​​ 更改 - 那些不是也在改变工作分支"选项吗?

xml git git-merge

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