小编Nat*_*ler的帖子

移动Safari SVG问题

我正在尝试将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)

iphone svg mobile-safari

32
推荐指数
3
解决办法
5万
查看次数

WCF跟踪代码

我的所有连接都是从我的代码中设置的,而不是使用我的配置文件.如何在从代码构建的连接上设置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)

.net c# wcf trace

7
推荐指数
1
解决办法
5742
查看次数

Mage.exe部署问题

我有一个配置文件,需要在每个服务器的基础上更改,以便一旦服务器安装了我们的软件,客户端安装程序的配置文件设置为匹配该服务器的特定设置,然后复制到公共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并修改它们以适应,然后重新签名文件.此外,我现在面临的问题是还无法确定如何向部署添加图标,因此"开始"菜单项会获得除通用图标之外的图标.

deployment clickonce command-line mage

7
推荐指数
1
解决办法
6990
查看次数

检测可移动介质的弹出/插入

我正在开发一个项目,我需要能够检测何时插入或移除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时它永远不会被击中.因为我根本没有弄乱这个,所以我在网上看到的所有例子都引用了相同的源代码(略有变化)

c# wmi

4
推荐指数
1
解决办法
5102
查看次数

TextBox.Text在WPF应用程序中泄漏内存

我有一个应用程序在数组数组上进行大量的数字运算.我将其设置为每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)

c# wpf textbox memory-leaks

3
推荐指数
1
解决办法
3129
查看次数

FileStream.Write不写入文件

我正在通过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# file filestream

2
推荐指数
1
解决办法
2990
查看次数

双击打开文件c#

我有一个填充文件路径的列表框.有人知道如何在双击时打开文件的默认程序吗?例如,如果列表框中的一个项目显示"c:\ test.txt",那么如何在记事本中打开它?如果是"c:\ inetpub\wwwroot\sitetest\test.asp",如何在默认的asp编辑器中打开它?谢谢.

c# listbox file double-click

2
推荐指数
1
解决办法
4408
查看次数