我正在尝试将SVG图像显示在我的iPhone(或iPad)默认浏览器上,但我似乎无法只显示一个矩形.
示例:http://www.invalidpage.com/svg/svgtest.html
资源:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/html1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
<title>SVG iPhone Test</title>
</head>
<body>
<div>
<svg width="500" height="220">
<rect x="2" y="2" width="496" height="216" stroke="#000" stroke-width="2px" fill="transparent"></rect>
</svg>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我的所有连接都是从我的代码中设置的,而不是使用我的配置文件.如何在从代码构建的连接上设置WCF跟踪.我尝试添加跟踪到配置文件,如解释在这里,但是无论如何不会产生日志.
我需要知道如何使用配置文件使其工作在代码中设置的连接,或者如果有人有任何信息,如何在代码中手动配置它.谢谢!
编辑:添加更多信息:
该应用程序是一个C#Console应用程序,我的绑定声明为:
private Binding getBinding()
{
NetTcpBinding tcp = new NetTcpBinding();
tcp.ReaderQuotas.MaxArrayLength = 65535;
tcp.TransferMode = TransferMode.Streamed;
tcp.ReaderQuotas.MaxArrayLength = int.MaxValue;
tcp.ReaderQuotas.MaxDepth = int.MaxValue;
tcp.ReaderQuotas.MaxStringContentLength = int.MaxValue;
tcp.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
tcp.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
tcp.MaxReceivedMessageSize = int.MaxValue;
return tcp;
}
Run Code Online (Sandbox Code Playgroud)
然后我使用通用函数向我的应用添加服务:
private List<ServiceHost> m_Hosts = new List<ServiceHost>();
private static List<string> m_Services = new List<string>();
public void AddHost<T1, T2>(string uri)
where T1 : class
where T2 : class
{
m_Services.Add("net.tcp://<ipaddress>:<port>/" + uri);
m_Hosts.Add(new ServiceHost(typeof(T1)));
m_Hosts[m_Hosts.Count - 1].AddServiceEndpoint(typeof(T2), getBinding(), m_Services[m_Services.Count …Run Code Online (Sandbox Code Playgroud) 我有一个配置文件,需要在每个服务器的基础上更改,以便一旦服务器安装了我们的软件,客户端安装程序的配置文件设置为匹配该服务器的特定设置,然后复制到公共Web上用于部署的文件夹.
由于我正在更改配置文件,我还必须重建*.manifest和*.application文件,据我所知,我唯一真正的选择是使用Win7 SDK中的Mage.exe.为了使用修改后的配置文件中的正确哈希修复*.manifest文件,我运行:
mage -new Application -fd".\ Application Files\<appName> _1_0_0_0"-ToFile".\ Application Files\_1_0_0_0\<appName> .exe.manifest"-Name"<appName>" - Version"1.0.0.0" - CertFile"key.pfx" - 密码"<密码>"
然后,使用修改后的*.manifest文件中的正确哈希修复*.application文件,运行:
mage -new Deployment -I t -t"<appName> .application"-v"1.0.0.0"-appManifest".\ Application Files\<appName> _1_0_0_0\<appName> .exe.manifest"-pu"http://<hostaddress>/<path>/Application Files/<appName> _1_0_0_0/<appName> .exe.manifest"-CertFile"key.pfx"-password""
现在,这一切都有效,我收到文件成功签名的消息.当我尝试安装客户端应用程序时,很明显当我收到带有消息的错误日志时出现了问题:
+ Deployment manifest is not semantically valid.
+ Deployment manifest requires <deployment> section.
Run Code Online (Sandbox Code Playgroud)
在查看*.application文件时,它在"部署"节点下有一些附加信息,直接来自VS2008的发布功能的同一文件没有:
<deployment install="true">
<subscription>
<update>
<expiration maximumAge="0" unit="days" />
</update>
</subscription>
<deploymentProvider codebase="http://<hostaddress>/<path>/Application Files/<appName>_1_0_0_0/<appName>.exe.manifest" />
</deployment>
Run Code Online (Sandbox Code Playgroud)
VS2008发布版本只需:
<deployment install="true" />
Run Code Online (Sandbox Code Playgroud)
当我删除其他信息并将部署节点设置为自终止节点,然后重新签名该文件时,一切都按预期工作.
这是一个已知问题,有没有办法让Mage在没有部署节点中的额外信息的情况下创建文件,以便它能正常工作?
编辑:作为临时解决方案,我将文件加载到XmlDocument并修改它们以适应,然后重新签名文件.此外,我现在面临的问题是还无法确定如何向部署添加图标,因此"开始"菜单项会获得除通用图标之外的图标.
我正在开发一个项目,我需要能够检测何时插入或移除CD或USB驱动器.我找到了一些应该做这件事的源代码,然而,当我插入或弹出CD时似乎没有任何事情发生.
有人可以验证来源是否正确,并给我任何关于我在这里做错了什么的指示?
public class MyWindow
{
ManagementEventWatcher w;
private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
WqlEventQuery query = new WqlEventQuery("__InstanceCreationEvent", new TimeSpan(0, 0, 1), @"TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 2");
ConnectionOptions opt = new ConnectionOptions();
opt.EnablePrivileges = true;
ManagementScope ms = new ManagementScope("root\\CIMV2", opt);
w = new ManagementEventWatcher(ms, query);
w.EventArrived += new EventArrivedEventHandler(w_EventArrived);
w.Start();
}
private void w_EventArrived(object sender, EventArrivedEventArgs e)
{
PropertyData pd = e.NewEvent.Properties["TargetInstance"];
}
}
Run Code Online (Sandbox Code Playgroud)
当我在"PropertyData pd = ..."行设置断点时,弹出/插入CD时它永远不会被击中.因为我根本没有弄乱这个,所以我在网上看到的所有例子都引用了相同的源代码(略有变化)
我有一个应用程序在数组数组上进行大量的数字运算.我将其设置为每100,000次操作以显示这些数字的状态.这只是应用程序仍处理的操作员的可视指示,以及完成的距离.
运行应用程序几个小时后,它会崩溃并出现OutOfMemoryExeption.我在上面运行了CLRProfiler,发现在TextBox中发生泄漏,显示了数组的当前状态......每次接口更新时,应用程序在Char []中构建~4K,每个位的堆栈跟踪挂起记忆是一样的.
这是WPF中的一个错误,还是我不知道应该做些什么来防止这种情况发生?我没有看到任何其他参考.因为无论如何这是一个非常耗费处理器的操作,如果我不必只显示数组的当前状态,我宁愿不必销毁和重建TextBox.
这是我能找到的唯一内存泄漏,但是由于所需的操作数量庞大,这对应用程序来说实际上是一个大问题,即使我只是降低了接口更新的频率.如果您需要更多信息,我会尽可能提供帮助,但请理解由于此应用程序的作用,我几乎不能发布任何源代码,我将不得不匿名化任何内容(删除任何指示应用程序的目的)我可以发布.
当通过CLR Profiler(DRASTICALLY降低性能)运行时,每2秒发生以下相同的跟踪(记住:100,000次操作)并且永远不会释放内存.当它在没有附加分析器的情况下运行时,更新之间的时间<1秒.
一次更新("Who Allocated")的跟踪是:
<root> : 3.7 kB (100.00%)
WpfApplication0.App::Main static void (): 3.7 kB (100.00%)
System.Windows.Application::Run int32 (): 3.7 kB (100.00%)
System.Windows.Application::Run int32 (System.Windows.Window): 3.7 kB (100.00%)
System.Windows.Application::RunInternal int32 (System.Windows.Window): 3.7 kB (100.00%)
System.Windows.Application::RunDispatcher Object (Object): 3.7 kB (100.00%)
System.Windows.Threading.Dispatcher::Run static void (): 3.7 kB (100.00%)
System.Windows.Threading.Dispatcher::PushFrame static void (System.Windows.Threading.DispatcherFrame): 3.7 kB (100.00%)
System.Windows.Threading.Dispatcher::PushFrameImpl void (System.Windows.Threading.DispatcherFrame): 3.7 kB (100.00%)
NATIVE FUNCTION ( UNKNOWN ARGUMENTS ): 3.7 kB (100.00%)
MS.Win32.HwndSubclass::SubclassWndProc int_ptr (int_ptr int32 int_ptr int_ptr): …Run Code Online (Sandbox Code Playgroud) 我正在通过WCF传递一些Base64编码的字符串,我正在尝试将它们写入文件.但是,尽管我的FileStream对象的长度大于0,但我在磁盘上的文件仍为空.
FileStream fs = new FileStream(Config.Instance.SharedSettings.SaveDir + StudyInstance.StudyId + "\\tmp.ext", FileMode.Create);
EncodeBlock eb = new EncodeBlock();
while (eb.Part != eb.OfParts || eb.OfParts == 0)
{
eb.ToDecode = ps.StudyService.GetInstancePart(StudyInstance, s, eb.Part+ 1, Config.Instance.ClientSettings.AppData);
eb = Base64Encoder.Decode(eb);
fs.Write(eb.ToEncode, 0, eb.ToEncode.Length);
}
fs.Close();
Run Code Online (Sandbox Code Playgroud)
eb.ToEncode的长度始终大于0,fs.Length始终大于0,但我的"tmp.ext"文件已创建,但仍为空.fs.CanWrite永远也是如此.
我有一个填充文件路径的列表框.有人知道如何在双击时打开文件的默认程序吗?例如,如果列表框中的一个项目显示"c:\ test.txt",那么如何在记事本中打开它?如果是"c:\ inetpub\wwwroot\sitetest\test.asp",如何在默认的asp编辑器中打开它?谢谢.
c# ×5
file ×2
.net ×1
clickonce ×1
command-line ×1
deployment ×1
double-click ×1
filestream ×1
iphone ×1
listbox ×1
mage ×1
memory-leaks ×1
svg ×1
textbox ×1
trace ×1
wcf ×1
wmi ×1
wpf ×1