小编dev*_*r82的帖子

Autofac - 确保控制器具有无参数的公共构造函数

我知道它之前已经被问过并回答了 - 我问的原因是因为(我认为)我尝试了所有建议的解决方案来解决这个问题,但仍然无法解决它.

我有一个ASP.NET Web API 2.0项目.我有Autofac,Autofac.Mvc5Autofac.WebApi2安装了依赖项.当我尝试调用API控制器时,我收到以下错误:

尝试创建"MyController"类型的控制器时发生错误.确保控制器具有无参数的公共构造函数.

在我Global.asax的电话中IocConfig.Config(),我已将其置于其中App_Start:

public static class IocConfig
{
    public static void Config()
    {
        var builder = new ContainerBuilder();

        builder.RegisterType<MyLogger>().As<IMyLogger>();

        builder.RegisterApiControllers(Assembly.GetCallingAssembly());
        builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);

        WebApiApplication.Container = builder.Build();

        DependencyResolver.SetResolver(
            new AutofacDependencyResolver(WebApiApplication.Container));
        GlobalConfiguration.Configuration.DependencyResolver =
             new AutofacWebApiDependencyResolver(WebApiApplication.Container);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是以下构造函数MyController:

public MyController(IMyLogger logger)
Run Code Online (Sandbox Code Playgroud)

当我尝试调用它时,我得到有关构造函数的指定错误.我错过了什么?

c# asp.net autofac autofac-configuration

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

ASP.NET Core中的ServicePointManager

我正在尝试将现有的类库代码转换为.NET Core类库.在static构造函数中的代码中,我有以下内容:

ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.Expect100Continue = false;
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,ServicePointManager在.NET Core中不再可用,WinHttpHandler现在应该使用(.net core中的ServicePointManager.DefaultConnectionLimit?).

我的问题是究竟是什么ServicePointManager以及正在设置的属性是什么?

WinHttpHandlerstatic作为ServicePointManager,所以我不得不创建一个实例来设置这些属性?我是否需要更改所有的http调用才能使用该实例?

.net-core asp.net-core asp.net-core-1.0

14
推荐指数
2
解决办法
9429
查看次数

在.NET Core中使用DataTable

我在SQL Server中有一个存储过程,它接受用户定义的表类型.我正在按照这篇文章的答案从C#list批量插入SQL Server到多个表,其中包含有关如何将DataTable发送到SQL中的存储过程的外键重量.

但是当我创建时,DataTable table = new DataTable();我得到了一个错误DataTable does not contain a constructor that takes 0 arguments.

我发现这个https://github.com/VahidN/EPPlus.Core/issues/4基本上说DataTable在.NET Core中不再支持.那么现在怎么办?如何创建DataTable(或者它的替代品是什么)?如何将用户定义的表类型发送到.NET Core上的SQL Server?

c# datatable .net-core asp.net-core asp.net-core-1.0

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

Bootstrap静态弹出窗口

在bootstrap popover文档(http://getbootstrap.com/javascript/#popovers)中,它们在页面上以静态方式显示popover(在它连接到按钮的示例之前).

我想在我的页面上显示一个popover作为对我网站上某些内容的解释 - 但是希望它始终显示,而无需用户点击任何内容.

我怎么能像他们一样展示静态弹出窗口?找不到一个选择.

谢谢

css twitter-bootstrap twitter-bootstrap-3

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

ASP.NET 5(vNext)构建版本和调试的不同依赖项

我们正在开发一个ASP.NET MVC 5项目,它依赖于来自不同解决方案的项目.另一个解决方案是常见的类库,我们将其作为NuGet包发布.当我们发布时,我们编译项目并从NuGet存储库中获取它,但是当我们正在开发时,我们从该项目的bin文件夹中获取引用.

为了实现这一点,我们对ASP.NET项目的csproj文件进行了"hack"(我们手动编辑了csproj xml文件并更改了引用):

<Reference Include="Common.Utilities, Culture=neutral, processorArchitecture=MSIL">
    <SpecificVersion>False</SpecificVersion>
    <HintPath Condition=" '$(Configuration)' == 'Debug' ">..\..\..\Common\Common.Utilities\bin\$(Configuration)\Common.Utilities.dll</HintPath>
    <HintPath Condition=" '$(Configuration)' != 'Debug' ">..\..\..\..\ExtrnBin\NuGetPackages\Common.Utilities.1.0.0.8\lib\net451\Common.Utilities.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

因此,当我们编译调试时,它从类库项目文件夹中获取,当我们编译发布时,它从下载的NuGet中获取.这对于快速开发非常有用,因为我们不必为每个更改重新发布新的NuGet.

我们现在正在测试ASP.NET 5,并且不再在csproj文件中定义依赖项,而是在project.json文件中定义.因此,如果我们添加一个引用,我们会得到这样的结果project.json:

"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
    "Common.Utilities": "1.0.0.8-*"
}
Run Code Online (Sandbox Code Playgroud)

它还会创建一个包装器文件夹并将DLL复制到lib\dnx\451文件夹. …

.net asp.net asp.net5

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

无法找到框架的运行时目标.NETCoreApp = v1与某些项目的目标运行时之一兼容

我有许多.NET Core项目的解决方案.我对所有项目进行了NuGet更新,现在当我尝试构建时,我得到以下错误(对于某些项目 - 并非全部):

Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible causes:
1. The project has not been restored or restore failed - run `dotnet restore`
2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section.
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.
Run Code Online (Sandbox Code Playgroud)

似乎有帮助的是我在这里找到的帖子无法找到框架的运行时目标.NETCoreApp = v1与其中一个目标运行时兼容 …

.net .net-core asp.net-core asp.net-core-1.0

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

每个小查询与硬编码sql查询的存储过程

我正在编写一个.NET应用程序并且想知道......我应该为每个查询编写存储过程,还是在这里有一些拇指的作用?

我知道编写SP的好处(比如安全性,不必重新编译代码来更改查询,查询编译).

但我发现自己很多时候我只需要对我的数据库进行简单的选择或删除操作(非常简单的东西 - 没有参数) - 所以你认为更好 - 为每个查询编写存储过程或有一些硬编码的查询?我有一些项目,我发现自己有很多存储过程,因为那...

谢谢

.net c# sql-server stored-procedures

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

接口实现中多个if语句的最佳设计模式

我的IComposerc#项目中有一个界面:

public interface IComposer
{
    string GenerateSnippet(CodeTree tree);
}
Run Code Online (Sandbox Code Playgroud)

CodeTree是一个基类,包含一个List<CodeTree>继承自的类CodeTree.例如:

public class VariablesDecleration : CodeTree
{
     //Impl
}

public class LoopsDecleration : CodeTree
{
     //Impl
}
Run Code Online (Sandbox Code Playgroud)

我可以有几个实现的类,IComposer每个我都有GenerateSnippet循环List<CodeTree>,基本上做:

foreach (CodeTree code in tree.Codes)
{
    if (code.GetType() == typeof(VariablesDecleration))
    {
        VariablesDecleration codeVariablesDecleration = (VariablesDecleration) code;
        // do class related stuff that has to do with VariablesDecleration
    }
    else if (code.GetType() == typeof(LoopsDecleration))
    {
        LoopsDecleration codeLoopsDecleration = (LoopsDecleration) code;
        // …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns visitor

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

ASP.NET OAuth授权 - 使用ClientId和Secret以及用户名和密码之间的区别

我正在尝试OAuthAuthorizationServerProvider在ASP.NET WebAPI 2中实现一个简单的操作.我的主要目的是学习如何为移动应用程序设置令牌.我希望用户使用用户名和密码登录,然后接收令牌(以及刷新令牌,这样一旦令牌过期,他们就不必重新输入凭据).稍后,我希望有机会打开API供其他应用程序外部使用(比如使用Facebook api等......).

以下是我设置AuthorizationServer的方法:

app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions()
{
    AllowInsecureHttp = true,
    TokenEndpointPath = new PathString("/token"),
    AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(5),
    Provider = new SimpleAuthorizationServerProvider(new SimpleAuthorizationServerProviderOptions()
    {
        ValidateUserCredentialsFunction = ValidateUser
    }),
    RefreshTokenProvider = new SimpleRefreshTokenProvider()
});
Run Code Online (Sandbox Code Playgroud)

这是我的SimpleAuthorizationServerProviderOptions实施:

public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider
{
    public delegate Task<bool> ClientCredentialsValidationFunction(string clientid, string secret);
    public delegate Task<IEnumerable<Claim>> UserCredentialValidationFunction(string username, string password);
    public SimpleAuthorizationServerProviderOptions Options { get; private set; }

    public SimpleAuthorizationServerProvider(SimpleAuthorizationServerProviderOptions options)
    {
        if (options.ValidateUserCredentialsFunction == null)
        {
            throw new NullReferenceException("ValidateUserCredentialsFunction cannot be …
Run Code Online (Sandbox Code Playgroud)

asp.net oauth oauth-2.0 asp.net-web-api2

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

无法连接到Windows 10上的本地RabbitMQ

我已在Windows 10计算机上安装RabbitMQ(可从RabbitMQ网站下载的最新版本)。它随ERlang 19.1一起安装。

我正在尝试使用以下命令(使用RabbitMQ命令提示符)安装RabbitMQ Web UI管理工具:

rabbitmq-plugins enable rabbitmq_management
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The directory name is invalid.
The filename, directory name, or volume label syntax is incorrect.
The filename, directory name, or volume label syntax is incorrect.    
Plugin configuration unchanged.

Applying plugin configuration to rabbit@[0x7FF9A8527044]... failed.
 * Could not contact node rabbit@[0x7FF9A8527044].
   Changes will take effect at broker restart.
 * Options: --online  - fail if broker cannot be contacted.
            --offline - do not try to contact broker.
Run Code Online (Sandbox Code Playgroud)

我查了一下SO,尝试停止并重新启动,覆盖了erlang cookie,但没有任何帮助。

我认为RabbitMQ本身存在问题。该服务本身被标记为已启动,但是如果我尝试通过telnet默认端口(5672),则它将失败(这不是防火墙问题-我已将其禁用)。

另外,我也没有看到为RabbitMQ创建的日志文件或任何相关的事件日志消息。因此很难准确地诊断问题。

我也尝试卸载并重新安装erlang和RabbitMQ。仍然没有帮助。 …

rabbitmq

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