我需要让主机脱离Request对象.我应该使用哪个属性?为什么?
来自MSDN:
Uri.DnsSafeHost财产
包含适用于DNS解析的URI的未转义主机部分的字符串; 或原始未转义的主机字符串,如果它已经适合解决.
VS
Uri.Host财产
包含主机名的String.这通常是服务器的DNS主机名或IP地址.
我的测试是使用ASP.NET Development Server.这两者总是回归localhost
.即使我输入127.0.0.1,两者都返回localhost
.
阅读时,该DnsSafeHost
属性将处理IPv6地址,以及Unicode转换为ASCII(如果需要).它还可以解释IRI和IDN.即使我目前不关心这些事情,我应该只使用该DnsSafeHost
属性是否安全?
字符串不变性是通过语句还是通过语句中的字符串来工作的?
例如,我了解以下代码将在堆上分配两个字符串.
string s = "hello ";
s += "world!";
Run Code Online (Sandbox Code Playgroud)
"你好"将留在堆上,直到垃圾收集; 现在引用"你好世界!" 在堆上.但是,以下行在堆上分配了多少个字符串... 1或2?此外,是否有工具/方法来验证结果?
string s = "goodbye " + "cruel world!";
Run Code Online (Sandbox Code Playgroud) 例如,
我可以通过添加以下内容在web.config文件中指定会话超时:
<system.web>
<sessionState timeout="10"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
或者,我可以通过转到"应用程序配置选项"在IIS中配置会话超时.
如果它们都配置为不同的值,哪一个赢?更具体地说,所有其他设置是否遵循相同的模式?
编辑:我不认为他们是同一个人.web.config获胜.当我在IIS中更改值时,没有任何内容被写回web.config.
web.config中的设置与IIS中的设置之间存在明确的脱节.我没有阅读任何关于哪一个覆盖另一个的好文档.我所观察到的是web.config获胜.我认为其他人可能会更深入地了解这种差异.
有没有办法自动打印SQL Server Reporting Services(2005)报告?
编辑:
我们需要以编程方式在网络打印机上打印SSRS报告.具体来说,我们想从存储过程中解决此问题.我们目前正在使用likeabanshee的方法,它正在运行.但是,我们希望管理更多内容,而不依赖于Adobe Acrobat和xp_cmdshell.我们正在研究Paul G.建议的这种方法.
我有一个应用程序在表中创建记录(火箭科学,我知道).用户希望将文件(.doc,.xls,.pdf等)与表中的单个记录相关联.
我应该将文件的内容存储在数据库中吗?这会膨胀数据库吗?
我应该将文件存储在文件服务器上,并将路径存储在数据库中吗?
做这个的最好方式是什么?
从SQL CLR存储过程中抛出异常是一种好的设计吗?由于我们处于SQL Server的上下文中,是否需要进行任何特殊考虑?
这是不好的设计吗?
[Microsoft.SqlServer.Server.SqlProcedure]
public static void MyStoredProcedure(string foo)
{
if (string.IsNullOrEmpty(foo))
{
throw new ArgumentNullException("foo");
}
}
Run Code Online (Sandbox Code Playgroud)
换句话说,是否应该将例外情况传达给来电者?
我在Page_Load上连接启动脚本JavaScript函数,如下所示:
ScriptManager.RegisterStartupScript(Me, GetType(Page), "page_init", "page_init();", True)
Run Code Online (Sandbox Code Playgroud)
此函数调用几个不同的函数来设置页面.其中一个功能检查document.readyState
并确保它"complete"
.这涉及图像,我想确保一切都已完全呈现.
if (document.readyState == "complete") {
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我需要将一个字节数组写入输出流(使用Response.BinaryWrite
或者Response.OutputStream.Write()
向用户提供文件.之后,document.readyState
它总是"交互式",直到我离开页面然后返回.我甚至有setTimeout(myFunction, 1000);
如果document.readyState
没有完成则使用一个调用来递归调用函数直到它完成.它永远不会达到"完成".
我已经研究了很长一段时间了,并且无法弄清楚这种行为.关于这是如何发生的任何想法?
我正在创建一个Windows服务.当发生异常时,我会适当地处理它并创建一个日志.我正在使用装饰器模式,因为人们会看到这些日志的方式有很多种.我有一个电子邮件记录器,一个文件记录器和一个Windows事件记录器,它们都是从LoggingDecorator继承的,它实现了ILogger.因此,没有记录器知道任何其他记录器.
我的问题是:我应该如何处理日志记录异常?
如果写入文件失败,或发送电子邮件失败,我该怎么办?我想用其他记录器记录初始日志内容,但是如何处理日志记录异常呢?它不依赖于构造函数中记录器的顺序吗?
现在,我只是使用空catch(Exception)语句来包装try/catch块,这只会感觉很脏并且让FxCop对我大喊大叫.然而,这是"依赖"的时刻吗?
[Flags]
public enum LoggingCategories
{
None = 0,
ServiceEvents = 1,
ProcessingInformation = 2,
ProcessingErrors = 4,
UnexpectedErrors = 8
}
public interface ILogger
{
void LogMessage(LoggingCategories category, string message);
}
public abstract class LoggerDecorator : ILogger
{
private ILogger _decoratedLogger;
private LoggingCategories _categories;
protected LoggerDecorator(ILogger logger, LoggingCategories categories)
{
this._decoratedLogger = logger;
this._categories = categories;
}
protected bool ShouldLogCategory(LoggingCategories category)
{
return ((this._categories & category) == category);
}
public virtual void …
Run Code Online (Sandbox Code Playgroud) 在工作中,我的电脑很慢.我觉得如果我不等待Visual Studio和其他所有响应,我的工作效率会更高.我的电脑也不错(双核,3GB内存),但是有很多企业软件,还有什么东西可以减慢一切,有时甚至将其锁定.
现在,一些开发人员已经开始使用8 GB的RAM获得Windows 7机器.当然,我开始垂涎三尺.但是,我被告知我"必须证明"为什么我应该买一台新机器.
我可以想到很多不同的东西,但我很好奇SO上的每个人都会说些什么.
注意:理想情况下,这些原因应与Windows计算机上Visual Studio中的.NET开发特别相关.这不是"如何让我的机器更快"的问题.
c# ×4
asp.net ×3
.net ×2
exception ×2
sql-server ×2
vb.net ×2
clr ×1
database ×1
decorator ×1
file ×1
iis ×1
immutability ×1
javascript ×1
logging ×1
performance ×1
string ×1