我已经尝试用c#代码改变我的系统的时区几天了,而我正在尝试的任何东西都没有多大意义或工作.我开始尝试使用我在其他问题上看到的SetTimeZoneInformation的PInvoke语法.
[DllImport("kernel32.dll", CharSet = CharSet.Auto)] private static extern bool
SetTimeZoneInformation([In] ref TimeZoneInformation lpTimeZoneInformation);
Run Code Online (Sandbox Code Playgroud)
我正在研究如何创建TimeZoneInformation结构并因为我的系统显然具有动态DST系统而感到困惑.事实证明,自从微软Vista添加了一种处理时区的新方法以来.您现在必须使用SetDynamicTimeZoneInformation
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern bool SetDynamicTimeZoneInformation([In] ref DynamicTimeZoneInformation lpTimeZoneInformation);
Run Code Online (Sandbox Code Playgroud)
我在msdn上搜索了这个API的帮助,发现了一些问题,"应用程序必须具有SE_TIME_ZONE_NAME特权才能使此功能成功." 最终我发现这个页面看起来像是一个很好的代码来完成这个.问题是它不起作用.
这是我的非工作代码:
[StructLayout(LayoutKind.Sequential)]
public struct LUID
{
public int LowPart;
public int HighPart;
}
[StructLayout(LayoutKind.Sequential)]
public struct TOKEN_PRIVILEGES
{
public LUID Luid;
public UInt32 Attributes;
public UInt32 PrivilegeCount;
}
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的Web应用程序(asp.net MVC3,.net 4,使用IIS而不是Visual Studio的嵌入式服务器,64位Windows 7).当我更改我的应用程序的应用程序池中的设置并将"启用32位应用程序"设置为False时,我的应用程序的视图显示,但没有静态内容(Content/Site.css或Scripts/myScript.js)显示起来.相反,我在这些请求上获得状态代码500.
HTTP错误500.0 - 内部服务器错误由于发生内部服务器错误,无法显示页面.
我正在更改此值的原因是我正在尝试使用64位Oracle.DataAccess.dll,如果我将此值设置为True,则会导致应用程序池在WOW64模式下运行并尝试加载dll格式错误.
我在网上搜索了一段时间,找不到很多关于此的信息.我试过玩文件的权限,我尝试用各种标志运行aspnet_regiis.我没有想法.在64位模式下运行时,为什么IIS不会提供此静态内容?