我在以前工作的应用程序上使用RC更新了ASP.NET 5框架beta-8软件包.运行后,在启动过程中出现下一个错误:
InvalidOperationException:没有配置身份验证处理程序来处理该方案:自动Microsoft.AspNet.Http.Authentication.Internal.DefaultAuthenticationManager.d__12.MoveNext()
var defaultPolicy =
new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
services.AddMvc(setup =>
{
setup.Filters.Add(new AuthorizeFilter(defaultPolicy)); // Error occurs here
});
Run Code Online (Sandbox Code Playgroud)
如果有人有类似的问题,我会感谢您对可能出错的想法或解决方案.此异常的解释也表示赞赏.
Startup.cs
using Autofac;
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNet.Authorization;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Mvc.Filters;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.PlatformAbstractions;
using SuperUserMVC.Configuration;
using SuperUserMVC.Extensions;
using SuperUserMVC.GlobalModules;
using System;
namespace SuperUserMVC
{
public class Startup
{
public IConfigurationRoot Configuration { get; set; }
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
public Startup(IHostingEnvironment env, …Run Code Online (Sandbox Code Playgroud) 我有两种不同的方法,一种是使用迭代计算Fibonacci序列到第n个元素,另一种是使用递归方法做同样的事情.
程序示例如下所示:
import java.util.Scanner;
public class recursionVsIteration {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//nth element input
System.out.print("Enter the last element of Fibonacci sequence: ");
int n = sc.nextInt();
//Print out iteration method
System.out.println("Fibonacci iteration:");
long start = System.currentTimeMillis();
System.out.printf("Fibonacci sequence(element at index %d) = %d \n", n, fibIteration(n));
System.out.printf("Time: %d ms\n", System.currentTimeMillis() - start);
//Print out recursive method
System.out.println("Fibonacci recursion:");
start = System.currentTimeMillis();
System.out.printf("Fibonacci sequence(element at index %d) = %d \n", n, …Run Code Online (Sandbox Code Playgroud) 我正在尝试编译sass,gulp-ruby-sass但我得到了TypeError: glob pattern string required.
这就是我的gulpfile.js样子:
var gulp = require('gulp'),
sass = require('gulp-ruby-sass');
var paths = {
sassSrcPath: ['Content/css/**/*.scss'],
sassDestPath: ['build/css/'],
sassImportsPath: ['Content/styleguide/']
};
// Styles Task
gulp.task('styles', function () {
gulp.src(paths.sassSrcPath)
.pipe(sass({
style: 'compressed',
loadPath: [paths.sassImportsPath]
}))
.pipe(gulp.dest(paths.sassDestPath));
});
// Watch Task
gulp.task('watch', function () {
gulp.watch(paths.sassSrcPath, ['styles']);
});
gulp.task('default', ['styles', 'watch']);
Run Code Online (Sandbox Code Playgroud)
这是我的文件夹结构:
??? Content
? ??? css
? ? ??? partials
? ? ? ??_icons.scss
? ? ??? main.css.scss
? …Run Code Online (Sandbox Code Playgroud) 当使用方法创建EntityFramework查询包装时DbContextTransaction,dbContext.Database.BeginTransaction()我遇到以下错误:
在NMemory.Linq.QueryableEx.Update的NMemory.Tnss.Table
2.Update(IQueryable1查询,IUpdater1 updater, Transaction transaction) at NMemory.Tables.Table2.NMemory.Tables.IBulkTable.Update(TableQuery1 query, Expression1更新程序,事务处理)中的NMemory.Transactions.Transaction.EnsureTransaction (事务和事务,IDatabase数据库)1 queryable, ExpressionEffort.Internal.Common.DatabaseReflectionHelper.WrapperMethods.UpdateEntities [TEntity]中的[T](IQueryable 1 updater,Transaction transaction)(IQueryable1 query, Expression1 updater,Transaction transaction)
我在Effort GitHub存储库上发现了一个类似错误的帖子(https://github.com/tamasflamich/effort/issues/29),其中使用方法DbTransaction创建了替代dbContext.Database.Connection.BeginTransaction()方法.我尝试使用DbTransaction而且它有效,但现在我想知道这两者之间的区别是什么?
让我们说你有下一个代码:
DECLARE @A INT = 1,
@B INT = NULL;
IF (@B != @A)
SELECT 1;
ELSE IF (@B = @A)
SELECT 2;
ELSE
SELECT 3;
Run Code Online (Sandbox Code Playgroud)
正如你可以看到变量@A等于'1'肯定而变量@B肯定没有.我正在Microsoft SQL Server Management Studio 2014中执行该部分代码,结果我得到'3'.这意味着@A不一样@B,但它也没有什么不同@B.这怎么可能呢?我在这里错过了什么?
我最近开始通过本书学习C#,我来到这个例子,我试图打印从命令提示符传递的参数:
namespace SimpleCSharpApp
{
class Program
{
static void Main()
{
string[] theArgs = Environment.GetCommandLineArgs();
foreach(string arg in theArgs)
Console.WriteLine("Arg: {0}", arg);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的命令提示符输入如下所示:
D:\ ...\SimpleCSharpApp\bin\Debug> SimpleCSharpApp.exe arg1 arg2
而输出是这样的:
Arg:SimpleCSharpApp.exe
Arg:arg1
Arg:arg2
我认为它看起来像是:
Arg:arg1
Arg:arg2
我的问题是,为什么它将我的执行命令识别为字符串参数的成员?为了得到我预期的输出,我应该改变什么?
我可以将foreach循环更改为for循环,从第2个元素开始,如下所示:
namespace SimpleCSharpApp
{
class Program
{
static void Main()
{
string[] theArgs = Environment.GetCommandLineArgs();
for (int i = 1; i < theArgs.Length; i++)
{
Console.WriteLine("Arg: {0}", theArgs[i]);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这并没有解决我的好奇心,我能以某种方式让它不像记录参数那样记录可执行文件并用foreach循环打印出来以获得我期望的输出吗?
提前致谢!
我正在使用SQL Server 2008 R2数据库构建一个C#应用程序,该数据库存储在bin我项目的文件夹中.我使用Linq to Sql方法创建数据库并将其附加到我的项目中.
我遇到的问题是,当我尝试创建数据库的备份时.它抛出一个错误说
数据库(database_name)不存在,请确保正确输入名称.BACKUP DATABASE异常终止.
这是我在按钮点击事件上写的代码:
try
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "SQL Server database backup files|*.bak";
sd.Title = "Create Database Backup";
if (sd.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
string sqlStmt=string.Format("BACKUP DATABASE <database_name> TO DISK='{0}'",sd.FileName);
using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
{
conn.Open();
bu2.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Backup Created Sucessfully");
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我的连接字符串:
string connStr = ConfigurationManager.ConnectionStrings["project_name.Properties.Settings.project??_nameConnectionString"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
然后从我的app.config文件
<add name="project_name.Properties.Settings.project_nameConnectionString" …Run Code Online (Sandbox Code Playgroud) 我目前正在学习C#的过程,我需要一个解释.对于经验丰富的人来说,这可能是合乎逻辑且简单的,但我认为代码应该以这种方式工作而不是.
我想打印出所有Car内部的对象carArray在我的Garage类的foreach使用命名迭代循环,但是当我通过假值GetTheCars法和其他块进入里面,没有任何反应.反向打印阵列工作正常.这是代码..
主要方法:
static void Main(string[] args)
{
Garage carLot = new Garage();
foreach (Car c in carLot.GetTheCars(false))
{
Console.WriteLine("{0} is going {1} MPH", c.PetName, c.CurrentSpeed);
}
Console.WriteLine();
foreach (Car c in carLot.GetTheCars(true))
{
Console.WriteLine("{0} is going {1} MPH", c.PetName, c.CurrentSpeed);
}
}
Run Code Online (Sandbox Code Playgroud)
车库类:
class Garage : IEnumerable
{
private Car[] carArray = new Car[4];
public Garage()
{
carArray[0] = new Car("Rusty", 30);
carArray[1] = new Car("Clunker", 55); …Run Code Online (Sandbox Code Playgroud) 我将日期作为字符串输入,格式为MM/dd/yy.
我正在尝试将其转换为DateTimeOffset以下方式:
string dateString = "02/11/48";
DateTimeOffset.TryParseExact(
dateString,
"MM/dd/yy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out DateTimeOffset date);
Run Code Online (Sandbox Code Playgroud)
然而,当这个字符串被转换为 时DateTimeOffset,年份被设置为 1948。由于业务逻辑,我知道那里的日期总是有最近的未来年份,所以年份应该是 2048。
有没有办法将字符串转换为DateTimeOffset这种方式,或者在解析后我是否必须在其上添加额外的逻辑?