我正在开发一个ASP.NET MVC 3 beta Razor引擎网站.这是一个小项目.我想知道是否可以将Razor引擎站点部署到普通的托管服务提供商.我假设我需要将相关的dll复制到我的站点bin文件夹.这项工作或我是否需要做更多的事情才能将我的网站成功部署到共享主机.
我正在编写一个url shortener应用程序,我还想用C#创建一个控制台应用程序,将URL推送到我也创建的WCF服务.
WCF应用程序将缩短此URI的URL;
http://example.com/shorten/http://exaple.com
所以我想要的只是那个.
我的控制台exe文件将位于c:\dev文件夹和Windows命令行中,我想这样做;
c:\ dev> myapp -throw http://example.com
用这种方法,我想谈谈这项服务.谈话部分没有问题.但问题是如何在命令行上提供这个-throw的东西并获得响应并将该响应放在命令行上并提供一种方法将其复制到剪贴板.我在这里问得太多了吗?:SI不知道.
你能指点一下我能找到相关信息吗?或者你可以给我一个示例代码吗?
谢谢.
编辑: 我尝试了以下代码;
class Program {
static void Main(string[] args) {
if (args[0] == "-throw") {
System.Windows.Forms.Clipboard.SetDataObject(args[1]);
Console.WriteLine(args[1] + " has been added to clipboard !");
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到了以下错误;
C:\ Apps\ArgsTry\ArgsTry\bin\Debug> ArgsTry -throw man
未处理的异常:System.Threading.ThreadStateException:在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式.确保您的Main函数标记了STAThreadAttribute.在System.Windows.Forms.Clipboard.SetDataObject(对象数据,布尔副本,在t32 retryTimes,Int32 retryDelay中)位于ArgsTry.Program.Main(String [] args)的System.Windows.Forms.Clipboard.SetDataObject(Object data)在c:\ apps\ArgsTry\ArgsTry\Program.cs:第14行
C:\ APPS\ArgsTry\ArgsTry\BIN \调试>
我在我的整个网站上强制使用我的web.config文件中的以下代码进行SSL;
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="^OFF$"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>
</rule>
</rules>
</rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
但我想做的是强制ssl只有~/purchase/和~/account/路径和它们下面.该匹配网址应该是什么?
注意正则表达式也适用于我和通配符.
假设我有以下课程:
public class Person {
public string FirstName { get; set; }
public string SurName { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
此外,我有以下方法,我通过存储库与人员数据联系.
public IEnumerable<Person> getPeople(string searchField, string searchTerm) {
//_repo.GetAll() returns IEnumerable<Person>
var model = _repo.GetAll();
//Need the logic here for filtering
return model;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我为该方法获得了两个参数:searchField和searchTerm.
searchField用于字段名称,其值将用于过滤.searchTerm是用来与重复值进行比较的值(对不起,如果我在这里不清楚,但这是我能提出的最多)
我通常会做的如下:
public IEnumerable<Person> getPeople(string searchField, string searchTerm) {
//_repo.GetAll() returns IEnumerable<Person>
var …Run Code Online (Sandbox Code Playgroud) 我有一个C#4.0应用程序,在这个应用程序中我有很多不必要的变量.像_foo下面代码中的变量一样:
public string Foo() {
var _foo = "foo bar";
return _foo;
}
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,像这样的情况发生在很多方法中.
很多不必要的变量(比如我在这种情况下解释的那些)会导致C#中的性能问题吗?
编辑:
如果我要删除它们,我不会问任何建议.我的问题是性能效应.事实上,该应用程序不是由我编写的,我是这个项目的新手.我刚看到并想知道它是否有任何性能.效果除了它对代码质量有影响的事实.
当我们在任何ASP.NET框架(ASP.NET MVC,Web窗体等)中使用ASP.NET Forms Authentication时,我们会在客户端的浏览器中保留身份验证cookie.作为最佳实践,我们将cookie设置为HttpOnly并且安全.我们还通过SSL进行所有交易.无论我们使用何种机制来验证用户(OAuth,ASP.NET成员资格提供程序等),我们仍然需要保持身份验证以获得更好的用户体验.
有了所有这些,我假设有人仍然可以从客户端浏览器中获取cookie并使用这些auth cookie值发出请求.服务器无法检测到这种情况,我们会将受保护的数据提供给其他人.
有人认为我想降低这里的风险是每当他/她试图采取一些严肃的行动(例如更改电子邮件地址,访问个人资料信息等)时询问客户的密码,但这并不能解决什么,对客户来说可能很烦人.
对于这类问题,您有任何积极关注的方法吗?或者在客户端浏览器中保持身份验证的最佳方法是什么?
我有一个ASP.NET Web API(.NET 4)应用程序,它有几个控制器.我们将在IIS上运行Web API应用程序的多个实例,但有一点不同.某些IIS实例下只能使用某些控制器.我想的是在实例启动时禁用/卸载不适用于实例的控制器.
任何人都有一些信息可以指导我正确的方向吗?
Autofac 3.0将具有MultitenantIntegration支持,其预览版现已推出.为了试用它,我使用以下配置创建了一个ASP.NET Web API应用程序:
public class Global : System.Web.HttpApplication {
protected void Application_Start(object sender, EventArgs e) {
var config = GlobalConfiguration.Configuration;
config.Routes.MapHttpRoute("Default", "api/{controller}");
RegisterDependencies(config);
}
public void RegisterDependencies(HttpConfiguration config) {
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
// creates a logger instance per tenant
builder.RegisterType<LoggerService>().As<ILoggerService>().InstancePerTenant();
var mtc = new MultitenantContainer(
new RequestParameterTenantIdentificationStrategy("tenant"),
builder.Build());
config.DependencyResolver = new AutofacWebApiDependencyResolver(mtc);
}
}
Run Code Online (Sandbox Code Playgroud)
它完成工作并根据租户创建LoggerService实例ILoggerService.在这个阶段我有两个问题,我无法解决:
RequestParameterTenantIdentificationStrategy在这里提供的开箱即用作此演示应用程序的TenantIdentificationStrategy.我可以通过实现ITenantIdentificationStrategy接口来创建我的自定义TenantIdentificationStrategy .但是,这种TryIdentifyTenant方法ITenantIdentificationStrategy会让你依赖静态实例,例如HttpContext.Current我在ASP.NET Web …asp.net dependency-injection autofac multi-tenant asp.net-web-api
我试图在click事件被触发后将注意力集中在具有knockout的输入上,但是在没有与DOM耦合的情况下找不到干净的方法来处理它.这是我的JS代码:
(function() {
var vm = {
text: ko.observable(),
items: ko.observableArray([])
}
vm.addItem = function() {
vm.items.push(vm.text());
vm.text(null);
}
ko.applyBindings(vm);
}());
Run Code Online (Sandbox Code Playgroud)
这是我的DOM:
<input type="text" data-bind="value: text" />
<a href="#" data-bind="click: addItem">Send</a>
<ul data-bind="foreach: items">
<li data-bind="text: $data"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是JsFiddle示例:http://jsfiddle.net/srJUa/1/
我希望它在vm.addItem完成后将注意力集中在输入上.知道如何干净利落地完成这项任务,例如使用自定义淘汰赛绑定吗?
假设您有一个类似下面的表单来添加新人:
在此示例中,当您从填充的选择列表中选择国家/地区时,将使用基于所选国家/地区的选项填充城市选择元素.此表单页面(PersonCreationForm)由以下组件组成:
这里的问题是:我应该如何在CountrySelectionForm组件之间传达选择CitySelectionForm?我有几个选项,但我不确定在Redux世界中处理这个问题的方法是什么:
PersonCreationForm组件内部,只需连接onCountrySelected支柱CountrySelectionForm并将结果传递给CitySelectionForm其country支柱.无需通过Redux进行此通信.但是,更改country道具会触发更改CitySelectionForm以根据Redux商店中的选定国家/地区获取城市.PersonCreationForm组件将调度指示选择了哪个国家/地区的操作.在此基础上,PersonCreationForm得到通知,并传递到结果CitySelectionForm通过为country道具.这会触发更改CitySelectionForm以从Redux商店获取基于所选国家/地区的城市.PersonCreationForm组件将调度指示选择了哪个国家/地区的操作.基于此,CitySelectionForm获得通知.这会触发更改CitySelectionForm以从Redux商店获取基于所选国家/地区的城市.asp.net ×4
c# ×3
asp.net-mvc ×2
autofac ×1
browser ×1
c#-4.0 ×1
console ×1
https ×1
iis ×1
iis-7 ×1
javascript ×1
knockout-2.0 ×1
knockout.js ×1
linq ×1
multi-tenant ×1
performance ×1
react-redux ×1
reactjs ×1
redux ×1
regex ×1
security ×1
ssl ×1