参考 https://github.com/shadowsocks/shadowsocks-windows/issues/459 能够解决问题? 不能的话,能否贴出问题详细?
@GangZhuo
1.不能解决
2.我提供的是我目前所能想到的信息,还需要什么信息吗?本人非程序员,不知道哪些信息还有帮助
右边那张图,点击查看问题详细。
win7 旗舰 64位系统 ,重新安装了.NET Framework 4.5,遇到上面同样问题。
Shadowsocks 已停止工作。
详细信息如下:
问题签名:
问题事件名称: CLR20r3
问题签名 01: Shadowsocks.exe
问题签名 02: 3.0.0.0
问题签名 03: 56d65064
问题签名 04: mscorlib
问题签名 05: 4.6.1055.0
问题签名 06: 563c0eac
问题签名 07: 321
问题签名 08: 10
问题签名 09: System.ArgumentException
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 0a9e
其他信息 2: 0a9e372d3b4ad19135b953a78882e789
其他信息 3: 0a9e
其他信息 4: 0a9e372d3b4ad19135b953a78882e789
联机阅读隐私声明:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804
如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
C:\Windows\system32\zh-CN\erofflps.txt
日志:
[2016-03-02 19:00:03] System.BadImageFormatException: 未能加载文件或程序集“System.Data.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。 (异常来自 HRESULT:0x800700C1)
文件名:“System.Data.dll”
在 Newtonsoft.Json.Converters.BinaryConverter.CanConvert(Type objectType)
在 Newtonsoft.Json.JsonSerializer.GetMatchingConverter(IList`1 converters, Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract contract)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
在 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
在 Newtonsoft.Json.JsonConvert.DeserializeObjectT
在 Shadowsocks.Model.Configuration.Load()
[2016-03-02 19:00:03] System.BadImageFormatException: 未能加载文件或程序集“System.Data.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。 (异常来自 HRESULT:0x800700C1)
文件名:“System.Data.dll”
在 Newtonsoft.Json.Converters.BinaryConverter.CanConvert(Type objectType)
在 Newtonsoft.Json.JsonSerializer.GetMatchingConverter(IList`1 converters, Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract contract)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
在 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
在 Newtonsoft.Json.JsonConvert.DeserializeObjectT
在 Shadowsocks.Model.Configuration.Load()
[2016-03-02 19:00:03] System.BadImageFormatException: 未能加载文件或程序集“System.Data.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。 (异常来自 HRESULT:0x800700C1)
文件名:“System.Data.dll”
在 Newtonsoft.Json.Converters.BinaryConverter.CanConvert(Type objectType)
在 Newtonsoft.Json.JsonSerializer.GetMatchingConverter(IList`1 converters, Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract contract)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType)
在 Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
在 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
在 Newtonsoft.Json.JsonConvert.DeserializeObjectT
在 Shadowsocks.Model.Configuration.Load()
[2016-03-02 19:00:04] System.ArgumentException: No server configured
在 Shadowsocks.Controller.TCPHandler.CreateRemote()
在 Shadowsocks.Controller.TCPHandler.StartConnect()
[2016-03-02 19:00:05] System.ArgumentException: No server configured
在 Shadowsocks.Controller.TCPHandler.CreateRemote()
在 Shadowsocks.Controller.TCPHandler.StartConnect()
[2016-03-02 19:00:05] System.Reflection.TargetInvocationException: 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 ---> System.Net.WebException: 基础连接已经关闭: 发送时发生错误。 ---> System.IO.IOException: 由于远程方已关闭传输流,身份验证失败。
在 System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
在 System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)
在 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在 System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
在 System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
--- 内部异常堆栈跟踪的结尾 ---
在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
在 Shadowsocks.Controller.UpdateChecker.http_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e)
[2016-03-02 19:00:58] Shadowsocks started
@GangZhuo
问题签名:
问题事件名称: CLR20r3
问题签名 01: shadowsocks.exe
问题签名 02: 3.0.0.0
问题签名 03: 56d65064
问题签名 04: Shadowsocks
问题签名 05: 3.0.0.0
问题签名 06: 56d65064
问题签名 07: 1a7
问题签名 08: 0
问题签名 09: System.IO.FileLoadException
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 0a9e
其他信息 2: 0a9e372d3b4ad19135b953a78882e789
其他信息 3: 0a9e
其他信息 4: 0a9e372d3b4ad19135b953a78882e789
该问题看起来很像你的 .NET Framework 损坏了,请尝试下载(只需要下载 NetFxRepairTool.exe 即可):
https://www.microsoft.com/en-us/download/details.aspx?id=30135
然后修复看看。
@chenshaoju
不起作用,NF版本为4.0.30319
Win10 x64专业版跑了一下午3.0版本,是release里面的,目前没发现问题。
@Aniark 可以考虑在控制面板程序与功能那里先关掉.NET Framework之后再打开,可能要重启两次。
你能在 %SystemRoot%\Microsoft.net\Framework\v4.0.30319\ 找到一个叫 System.Data.dll 的文件吗?
其中 v4.0.30319 的末尾版本可能不一样,但是 v4.0. 是一样的。
@wongsyrone 从他的提示来看,他的 .NET Framework 无法加载 System.Data.dll ,常规环境下基本不可能。
所以我建议使用win系统的功能从微软服务器重新安装一遍,如果是精简版系统也可能有问题。

win7 64位 旗舰 目前装了这些。双击安装 .NET Framework 4.0, .NET Framework 4.0程序会闪退,
NetFxRepairTool.exe修复没效果。 #459 试过,#247 也试过,都 无效。
回滚2.5.8.0后正常。目前好像能提供参考的有效信息就这些。
@chenshaoju 有此dll,和他的情况不一样
最新情况,安装.net framework 4.5.2后,正常工作
下载链接
https://www.microsoft.com/zh-CN/download/details.aspx?id=42642
@wongsyrone
尝试重启,无果,系统为纯净sp1镜像
3.0闪退,无任何报错。
gui-config.json删除后还是闪退。
@GangZhuo
依旧停止工作
以下为错误信息
问题事件名称: CLR20r3
问题签名 01: shadowsocks.exe
问题签名 02: 3.0.0.0
问题签名 03: 56d6e11a
问题签名 04: Shadowsocks
问题签名 05: 3.0.0.0
问题签名 06: 56d6e11a
问题签名 07: 1a7
问题签名 08: 0
问题签名 09: System.IO.FileLoadException
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 0a9e
其他信息 2: 0a9e372d3b4ad19135b953a78882e789
其他信息 3: 0a9e
其他信息 4: 0a9e372d3b4ad19135b953a78882e789
出错的时候,打开任务管理器,按照下图这样建立转储文件,然后把这个文件传上来。(我未测试i过crash后是否能这样建立转储文件,应该是能的)

请先按照 @GangZhuo 的方法收集错误信息,上传后请按照以下方式以修复方式安装 .NET Framework 4 :
1,从 https://www.microsoft.com/zh-CN/download/details.aspx?id=17718 下载 dotNetFx40_Full_x86_x64.exe ,如果已经下载,请跳转到第二步。
2.启动命令提示符,进入下载目录,然后执行:
dotNetFx40_Full_x86_x64.exe /NoSetupVersionCheck /repair
3.选择“将 .NET Framework 4 修复到其原始状态”,并点击下一步,按照提示操作。

https://ci.appveyor.com/project/icylogic/shadowsocks-windows-l9mwe/build/job/n6o1b6nyih642l16/artifacts 这版我这里目前可以正常使用。
这版如果运行有问题,我再贴日志和相关截图上来。
谢谢@GangZhuo 辛苦了!谢谢 @chenshaoju 指导!
添加第29个节点的时候,又崩溃了。
崩溃以后,只能找到ss_privoxy.exe这个进程的转储文件,文件大小有42M。
退出后无法正常启动shadowsocks.exe,报错,还是 问题事件名称: CLR20r3
Shadowsocks.exe进程的完整转储文件,文件大小有149M。
去gui-config.json文件里减去了几个节点,程序才能正常启动。有点奇怪啊。
日志:
[2016-03-02 21:33:46] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
在 System.Diagnostics.Process.Kill()
在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
[2016-03-02 21:33:47] Shadowsocks started
[2016-03-02 21:33:49] Shadowsocks started
[2016-03-02 21:33:52] hxx-sl-xx-xx.xx :1xxxx timed out
[2016-03-02 21:34:02] Shadowsocks started
[2016-03-02 21:34:04] Shadowsocks started
[2016-03-02 21:34:43] Shadowsocks started
[2016-03-02 21:34:45] Shadowsocks started
[2016-03-02 21:34:55] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
在 System.Diagnostics.Process.Kill()
在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
[2016-03-02 21:34:55] Shadowsocks started
[2016-03-02 21:34:57] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
在 System.Diagnostics.Process.Kill()
在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
[2016-03-02 21:34:57] Shadowsocks started
[2016-03-02 21:35:44] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
在 System.Diagnostics.Process.Kill()
在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
[2016-03-02 21:35:44] Shadowsocks started
[2016-03-02 21:35:46] Shadowsocks started
[2016-03-02 21:35:58] Shadowsocks started
[2016-03-02 21:36:00] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
在 System.Diagnostics.Process.Kill()
在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
[2016-03-02 21:36:00] Shadowsocks started
[2016-03-02 21:36:15] Shadowsocks started
[2016-03-02 21:36:17] Shadowsocks started
[2016-03-02 21:36:28] Shadowsocks started
[2016-03-02 21:38:00] System.IO.IOException: 文件“D:\Program Files\Browser\Shadowsocks\temp\ss_privoxy.exe”正由另一进程使用,因此该进程无法访问此文件。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
在 Shadowsocks.Controller.FileManager.UncompressFile(String fileName, Byte[] content)
在 Shadowsocks.Controller.PolipoRunner..cctor()
[2016-03-02 21:38:00] Shadowsocks started
[2016-03-02 21:39:32] System.IO.IOException: 文件“D:\Program Files\Browser\Shadowsocks\temp\ss_privoxy.exe”正由另一进程使用,因此该进程无法访问此文件。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
在 Shadowsocks.Controller.FileManager.UncompressFile(String fileName, Byte[] content)
在 Shadowsocks.Controller.PolipoRunner..cctor()
[2016-03-02 21:39:32] Shadowsocks started
[2016-03-02 21:40:04] System.IO.IOException: 文件“D:\Program Files\Browser\Shadowsocks\temp\ss_privoxy.exe”正由另一进程使用,因此该进程无法访问此文件。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
在 Shadowsocks.Controller.FileManager.UncompressFile(String fileName, Byte[] content)
在 Shadowsocks.Controller.PolipoRunner..cctor()
[2016-03-02 21:40:04] Shadowsocks started
[2016-03-02 21:41:56] System.IO.IOException: 文件“D:\Program Files\Browser\Shadowsocks\temp\ss_privoxy.exe”正由另一进程使用,因此该进程无法访问此文件。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
在 Shadowsocks.Controller.FileManager.UncompressFile(String fileName, Byte[] content)
在 Shadowsocks.Controller.PolipoRunner..cctor()
[2016-03-02 21:41:56] Shadowsocks started
[2016-03-02 21:42:57] System.ArgumentException: No server configured
在 Shadowsocks.Controller.TCPHandler.CreateRemote()
在 Shadowsocks.Controller.TCPHandler.StartConnect()
Interesting,看来发布前得进行小范围的测试。
@chenshaoju
刚刚在虚拟机里新装了个win7 64位旗舰版,只装了
https://www.microsoft.com/zh-CN/download/details.aspx?id=17718
下载 的dotNetFx40_Full_x86_x64.exe

运行shadowsocks 3.0还是会挂。感觉还是不兼容.net 4.0。
@Aniark 安装 Microsoft .NET Framework 4 KB2468871 这个补丁应该可以解决这个问题,下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=3556
@licheedev 请重新启动虚拟机里的系统,然后进行Windows Update,或者只安装 楼上提供的补丁然后试试。
PS:补丁安装后建议重启。
Update:
@GangZhuo 已有用户安装补丁后正常: https://twitter.com/fecable/status/705211995310522370
修复安装 .NET Framework 4 KB2468871由于某种原因安装失败
然后通过安装 .NET Framework 4 KB2468871 后正常

@chenshaoju 是由 Microsoft.Bcl.Async 这个包引起的错误,目前只有 ping 服务器的时候才使用,因此考虑是否需要去掉这个依赖。
@GangZhuo 统计如何处理?采用别的方式吗……?
@chenshaoju 这个包引入的目的,是方便执行异步 ping,不引入这个包且要达到同样目的的话,需要多写一点代码。去掉的话,功能上无变化,可能软件体积会少100KB左右。
@GangZhuo 可以尝试去掉这个包试试,目前从推上也有类似的反馈。
@GangZhuo @chenshaoju
安装Microsoft .NET Framework 4 KB2468871补丁后,已可正常使用,感谢二位相助
这个问题是不是代码里有异常没有catch啊
Microsoft .NET Framework 4 KB2468871 我安装了 还是不能用。
@SCJ-GitHub
如果是最新版 ss-windows,试试下载 Microsoft .NET Framework 4.6.2:
https://www.microsoft.com/zh-cn/download/details.aspx?id=53344
先按win 7系统提示更新NET4,然后更新NET4.5.2,再按系统提示更新4.6.2,之后应该可以上网了。
原因就是 .net版本低,升到4.6就好了(shadowsocks 4.1.4)
Most helpful comment
先按win 7系统提示更新NET4,然后更新NET4.5.2,再按系统提示更新4.6.2,之后应该可以上网了。