假设我希望从批处理脚本本身获取批处理脚本的绝对路径,但没有尾部反斜杠.通常,我这样做:
SET BuildDir=%~dp0
SET BuildDir=%BuildDir:~0,-1%
Run Code Online (Sandbox Code Playgroud)
第一个语句获取带有反斜杠的路径,第二个行删除最后一个字符,即反斜杠.有没有办法将这两个语句组合成一行代码?
搜索网络时,我看到很多实例在全球化部分使用以下属性组合:culture ="auto",uiCulture ="auto",enableClientBasedCulture ="true",例如:
<globalization uiCulture="auto" culture="auto" requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/>
Run Code Online (Sandbox Code Playgroud)
文档说:http://msdn.microsoft.com/en-us/library/system.web.configuration.globalizationsection.enableclientbasedculture(v=VS.90).aspx
启用EnableClientBasedCulture属性后,Culture和UICulture属性基于客户端浏览器发送的AcceptLanguage标头字段值.如果AcceptLanguage标头值无法映射到特定区域性,则使用Culture和UICulture值.默认值为false.
对于culture和uiCulture属性,"auto"应该是指http://msdn.microsoft.com/en-us/library/bz9tc508(v=VS.90).aspx
要让ASP.NET将UI文化和文化设置为当前浏览器设置中指定的第一种语言,请将UICulture和Culture设置为auto.或者,您可以将此值设置为auto:culture_info_name,其中culture_info_name是区域性名称.有关文化名称的列表,请参阅CultureInfo.您可以在@ Page指令或Web.config文件中进行此设置.
假设浏览器在AcceptLanguage标头字段值中发送无效或无文化名称.因为enableClientBasedCulture ="true",应用程序服务器应该尝试使用AcceptLanguage头字段中的任何内容,但是如果文化名称无效,则无法执行此操作并返回culture ="auto"和uiCulture ="auto ",但自动/自动设置本身将无法使用无效数据.
现在假设我们确实向服务器发送了一个有效的文化名称,例如"de-DE".仍然告诉应用程序服务器使用AcceptLanguage头字段值,因为enableClientBasedCulture ="true",但由于culture和uiCulture设置为"auto",他们无论如何都会使用该值.
我的第一个问题是:将auto/auto与true结合起来有什么意义?我自己的信念是,如果culture ="auto"和uiCulture ="auto",使用enableClientBasedCulture ="true"将是多余的.我自己的测试表明,auto和auto的工作方式与在与enableClientBasedCulture属性结合使用时一样,但是当我看到web上的许多示例中都提到了auto/auto/true组合时,我想知道是否我忽略了一些东西.
我尝试过使用enableClientBasedCulture ="true"而没有自动/自动设置,例如
<globalization requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/>
Run Code Online (Sandbox Code Playgroud)
这似乎根本不起作用; 似乎客户端强制提供服务器的culture和uiCulture设置,即使enableClientBasedCulture ="true"应该(隐式地)将这些属性设置为AcceptLanguage头字段值的属性.
然后我尝试将enableClientBasedCulture与文化和uiCulture的特定文化相结合,例如
<globalization uiCulture="da-DK" culture="da-DK" requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,无论语言设置如何,客户端浏览器都被迫使用"da-DK".
看看http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=VS.90).aspx我看到这个for enableClientBasedCulture:
此属性目前尚未使用.
使用.NET Reflector,我已经反编译了所有.NET 3.5 Framework程序集并搜索了enabledClientBasedCulture.我在System.Web.Configuration\GlobalizationSection中找到了一些代码,它们读取值并通过属性使其可用,但是对它没有任何作用.
在Hosting\HostingEnvironment中,我找到一个名为SetCultures的方法,它从GlobalizationSection参数中获取culture和uiCulture值,但我还没有找到任何使用enableClientBasedCulture属性的代码.
所以我的第二个问题是:enableClientBasedCulture属性是否实际上在任何地方都被使用,如果是这样,我应该如何配置测试程序以证明它有任何影响?
我需要从使用Visual Studio 2008部署项目创建的安装程序中的VBScript中读取Temporary ASP.NET Files文件夹的位置,作为安装后任务的一部分.
我以为我会这样做:
Set oShell = CreateObject("Wscript.Shell")
strPath = oShell.RegRead("HKLM\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\Path")
Run Code Online (Sandbox Code Playgroud)
然后将strPath与"\ Temporary ASP.NET Files"连接起来并完成它.
但是,在x64系统上,我从WOW6432Node(HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\2.0.50727.0)获取值,它为我提供了32位框架路径(C:\ Windows\Microsoft. NET\Framework\v2.0.50727),但在x64系统上,我实际上需要64位路径,即C:\ Windows\Microsoft.NET\Framework64\v2.0.50727.
我知道这是因为.vbs文件是使用32位脚本主机运行的,因为父进程(安装程序)本身就是32位.
如何使用64位脚本主机运行脚本 - 或者 - 即使脚本使用32位脚本主机运行,如何读取64位值?
假设我有一个.Net Framework 3.5 SP1/CLR 2.0应用程序,它需要在x86和x64平台上运行.假设无论出于何种原因,我还需要创建单独的x86和x64安装程序.
因为我还有一个特定于x64的安装程序,将应用程序本身重新编译为x64而不是以"AnyCPU"为目标会有什么好处吗?
除了生成的程序集的头信息之外,将目标设置为x64是否会改变任何内容?
我有一些P-SQL语法的问题.我已将代码示例减少到最低限度.
以下作品:
CREATE OR REPLACE FUNCTION MyFunction(LINE_ID SMALLINT)
RETURN VARCHAR2 IS
tmp VARCHAR2(4000);
BEGIN
tmp := CAST(LINE_ID AS VARCHAR2);
RETURN(tmp);
END MyFunction;
/
Run Code Online (Sandbox Code Playgroud)
但是,我需要将LINE_ID参数更改为NUMBER(5,0),之后以下操作无效:
CREATE OR REPLACE FUNCTION MyFunction2(LINE_ID NUMBER(5, 0))
RETURN VARCHAR2 IS
tmp VARCHAR2(4000);
BEGIN
tmp := CAST(LINE_ID AS VARCHAR2);
RETURN(tmp);
END MyFunction2;
/
Run Code Online (Sandbox Code Playgroud)
Oracle SQL Developer 3.2.10.09中的错误消息是
错误(1,36):PLS-00103:遇到符号"("当期望下列之一:: =.),@%默认字符符号":="代替"("继续.
我应该怎么写的CAST声明,以使其与合作NUMBER(5, 0),而不是SMALLINT?
同样,这不是原始代码,但我正在寻找一种解决方案,它不会偏离第二个版本太多,最好也不是另一个函数调用.在VARCHAR2返回类型也很重要.
由于对Temporary ASP.NET Files文件夹的权限不足,我遇到程序集绑定失败.
该应用程序使用(web.config)表单身份验证与Impersonate = True和IIS Windows集成身份验证.
根据ASP.NET Identity Matrix,这意味着WindowsIdentity解析为Domain\UserName,并且根据ASP.NET必需的访问控制列表(ACL),WindowsIdentity需要对Temporary ASP.NET Files文件夹的读/写权限.
使用Fusion日志查看器,我可以确认程序集绑定失败是由于Domain\UserName(属于安全性中的"Users"组)只对该文件夹具有读取权限,而不是写入权限.
问题是:
为临时ASP.Net Files文件夹分配写权限是否有任何安全隐患?
这种服务器配置变化是常用的吗?如果没有,为什么WindowsIdentity会针对此web.config设置组合解析为Domain\UserName - 或者是否应该在此上下文中使用此组合?
注意:仅当非管理员用户是第一个访问该页面的用户时,才会出现此问题.如果由于管理员用户访问页面而已将程序集编译并存储在临时ASP.NET文件中,则后续用户不会遇到任何问题.我不希望将程序集放在GAC中.
鉴于使用ASP.NET,javascript,css等技术的大型遗留项目,我想知道是否以任何方式将网页的DOCTYPE从HTML 4.0 Transitional更改为XHTML 1.0 Transitional(或其他方式)可以打破网页的javascript功能.
关于不同的DOCTYPES如何影响页面的(css)呈现,有很多文章和讨论,但我似乎无法找到任何类似的破坏任何代码的主题.
我正在寻找关于一般需要注意的事项的文章的链接,以便更好地发现现有代码中的潜在问题,并避免在编写新代码时产生问题.
使用VB.NET,C#或VBScript,如何检查运行IIS 7.x的计算机上是否已安装IIS 6管理兼容性功能及其子功能?
我有一个简单的框架集,垂直有两个框架,即两行:
第一行包含固定标头.
第二行包含顶部的固定工具栏,底部包含可调整大小的工具栏.
由于浏览器之间的渲染差异,我不能只为"内容"框架启用滚动,因为这意味着整个框架(包括工具栏)将在某些浏览器中滚动,而只有底部的可调整大小部分才能获得滚动条在其他浏览器中(这是我想要的).下面的示例中缺少用于控制容器和toolbarContainer元素的css,但现在这不相关.
问题是:给定下面的示例代码,如果我在使用IE7(在IE7兼容模式下的IE8,但纯IE7表现出同样的问题时)垂直调整浏览器窗口时,我没有得到body元素的onresize事件.在我尝试过的所有其他浏览器中,我确实得到了onresize事件,如果我横向调整浏览器窗口大小,我也会在IE7中获得该事件.
在这种情况下,IE7和onresize事件是否存在已知问题?
注1:我知道我应该完全摆脱框架集,但现在这不是一个选择.
注2:我搜索了有关此主题的信息,但由于问题似乎只出现在IE7和框架上下文中,因此现在不太可能影响太多的开发人员.
index.htm的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Resize Test</title>
</head>
<frameset rows="104,*" framespacing="0" frameborder="no">
<frame src="header.htm" name="header" frameborder="0" noresize="noresize" scrolling="no" marginheight="0" marginwidth="0" />
<frame src="content.htm" name="content" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" />
</frameset>
</html>
Run Code Online (Sandbox Code Playgroud)
header.htm:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Header</title>
<style type="text/css" media="all">
body { margin: 0px;
padding: 0px;
width: 100%;
height: 104px;
}
</style>
</head>
<body>
<img alt="" width="699" height="104" …Run Code Online (Sandbox Code Playgroud)