【问题标题】:Issues on Win Host godaddy关于 Win Host Godaddy 的问题
【发布时间】:2015-07-16 12:32:53
【问题描述】:

我有一个简单的 mvc 4 应用程序,它尝试从服务器的 CSV 文件中读取数据。在本地主机上运行时,它工作正常。但是当我将应用程序上传到 godaddy 服务器,我在尝试读取文件时遇到以下错误

System.TypeAccessException:按方法尝试 'DynamicClass.lambda_method(System.Runtime.CompilerServices.Closure)' 访问类型 'System.Linq.OrderedEnumerable2<CSVU.Models.DataTableEntry,System.Int32>' failed. at lambda_method(Closure ) at System.Linq.EnumerableExecutor1.Execute() 在 System.Linq.EnumerableQuery1.System.Linq.IQueryProvider.Execute[S](Expression expression) at System.Linq.Queryable.Count[TSource](IQueryable1 源)在 PagedList.PagedList1..ctor(IQueryable1 超集,In​​t32 pageNumber, Int32 pageSize) 在 PagedList.PagedList1..ctor(IEnumerable1 超集,In​​t32 pageNumber, Int32 pageSize) 在 PagedList.PagedListExtensions.ToPagedList[T](IEnumerable1 superset, Int32 pageNumber, Int32 pageSize) at CSVU.Controllers.FilesController.ViewCSVData(Int32 id, Nullable1 页)在 G:\Mayur Muley\Project\Calibre Group\CSVU\CSVU\Controllers\FilesController.cs:第 200 行,位于

还有很多行..

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc linq


    【解决方案1】:

    阅读https://github.com/troygoode/PagedList/issues/68

    听起来 GoDaddy 有一些遗留/奇怪的安全配置。

    您是否尝试将以下内容添加到您的 AssemblyInfo.cs 文件中?

    [assembly: SecurityRules(SecurityRuleSet.Level1)]
    

    也有可能您正在编译为 .NET4,但 GoDaddy 是 .NET2,我也会检查这一点以确定。

    更多阅读在这里https://msdn.microsoft.com/en-us/library/system.security.securityruleset(v=vs.110).aspx

    【讨论】:

    • 我正在尝试您的建议.. 不好意思问这个,但需要知道为什么选择 LEVEL1?如果我使用 2 级或无怎么办?
    • 我尝试了所有级别,即 level1、level2、none。它没有用。请提出任何其他解决方案。
    • GoDaddy 默认为中等信任,您可以尝试将其更改为不同的级别,如godaddy.com/help/…中所述
    • 请看我的回答我是如何找到解决方法的。谢谢您的建议在某些方面有所帮助..我不确定是否是因为设置了安全规则,因此没有将您的答案标记为正确的..但是谢谢。
    【解决方案2】:

    我解决了。我不知道如何解决,但以下是我尝试过的解决方案。每个解决方案都必须使用其先前的解决方案。对于每个解决方案,我使用更新的程序集将应用程序发布到 godaddy。

    1. 我尝试签署我的程序集。

    2. 当我对我的自定义对象列表进行分页时。我写了这段代码

    var temp = myPrevList.OrderBy(x=> x.IntegerColumn);
    IPagedList listToSendToView = temp.ToPagedList(1,10);

    不是这个

    IPagedList listToSendToView = myPrevList.OrderBy(x=> x.IntegerColumn).ToPagedList(1,10);

    1. 然后尝试通过使用不同的密钥签署程序集来更改信任级别。

    2. 然后尝试了@timothyclifford建议的实现安全角色的解决方案,这里我尝试了Level1。发布到godaddy。 -> 没有 +ve 结果

    3. 然后试了Level2,结果一样,没用。

    4. 然后试了None级别,结果一样,没用。

    5. 最后,我尝试删除步骤 4、5、6 中设置的安全规则并发布,MIRACLE... 它工作了..! 我仍然没有'不知道它是如何以及为什么起作用的。

    感谢@timothyclifford。

    【讨论】:

    • 没问题。随意 +1 任何你觉得有帮助的东西 ;) 阅读其他 StackOverflow 问题,似乎与 GoDaddy 和中等信任度有很大关系。大多数人只是建议不要使用 GoDaddy 托管...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    相关资源
    最近更新 更多