我试图解决预编译的F#Azure函数中的MissingMethodException。从FSharp调用扩展方法时引发异常。数据css选择扩展。
该函数是在一个函数中定义的。Net框架4.6。2.班级图书馆。我正在使用当前版本的FSharp。堆芯(4.2.3)和FSharp。数据(2.3.3)。(我尝试了这两个版本的旧版本,但问题仍然存在。)我为FSharp添加了绑定重定向。根据这类问题的标准指南进行核心测试。代码编译得很干净,但执行时失败。如果我试图以简单的静态方法直接调用扩展方法,它也会失败。
任何关于我如何摆脱这个例外的指导都将不胜感激!
功能代码
module httpfunc
open System.Net
open System.Net.Http
open Microsoft.Azure.WebJobs.Host
open FSharp.Data
open FSharp.Data.CssSelectorExtensions
let Run(req: HttpRequestMessage, log: TraceWriter) =
async {
let doc = HtmlDocument.Load("https://google.com")
let node = doc.CssSelect("div.ctr-p") // <-- method is missing
return req.CreateResponse(HttpStatusCode.OK)
} |> Async.RunSynchronously
异常消息
mscorlib: Exception while executing function: Functions.httpfunc.
mscorlib: Exception has been thrown by the target of an invocation.
fsfuncs: Method not found: 'Microsoft.FSharp.Collections.FSharpList`1<FSharp.Data.HtmlNode> CssSelectorExtensions.CssSelect(FSharp.Data.HtmlDocument, System.String)'.
应用程序。配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.1.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
包装。配置
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Core" version="4.2.3" targetFramework="net462" />
<package id="FSharp.Data" version="2.3.3" targetFramework="net462" />
...
</packages>
.fsproj
<Project ToolsVersion="15.0" ... />
<PropertyGroup>
<RootNamespace>fsfuncs</RootNamespace>
<AssemblyName>fsfuncs</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<TargetFSharpCoreVersion>4.4.1.0</TargetFSharpCoreVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Name>fsfuncs</Name>
</PropertyGroup>
...
</Project>
编辑
根据Fyodor Soikin的建议,我已经确定了FSharp的多个版本。正在加载Core.dll:一个来自GAC,一个来自Nuget包文件夹。
Azure Functions背后的执行引擎已经加载了FSharp。Core.dll(因为它依赖于F#编译器服务来运行你的F#脚本),我认为你总是会得到
FSharp的版本。由执行引擎的app.config指定的Core.dll
,4.4.0.0。
我可能遗漏了一些东西,但我认为您最好的机会是让您的函数使用版本4.4。0.0. 您可以尝试删除显式
FSharp吗。核心
参考?这样,运行时应该只加载(已经预加载)版本的FSharp。核心
。
我对使用PrimeFaces 3.4.1和JSF 2.1.6的dataTable有以下问题。第一次加载页面时,数据表中充满了数据库中的数据,但每当在页面上执行操作(编辑链接、数据表排序或过滤)时,数据表就会丢失其数据。DataTable包含来自此类的元素: 在dataTable上执行操作后进行调试时,我们只在envioDatasujeto字段上保留数据,元素上的其他所有数据都会丢失。 这是xhtm
本文向大家介绍vuex页面刷新后数据丢失的方法,包括了vuex页面刷新后数据丢失的方法的使用技巧和注意事项,需要的朋友参考一下 1. 原因 (1)js代码是运行在内存中的,代码运行时的所有变量、函数都是保存在内存中。 (2)刷新页面,以前申请的内存被释放,重新加载脚本代码,变量要重新赋值。 (3)要想刷新后数据不丢失就必须把数据存储在外部,例如:Local Storage、Session Stor
我正在使用DSS签署Pdf文档。我需要这些文档有时间戳并启用LTV(启用PAdES LTV)。 我遇到了一些关于撤销数据的问题。 我对这个领域有点陌生,所以请容忍我。 我按照DSS本身提供的说明和演示进行操作,但没有效果。 我已经成功地使用PAdES B和PAdES T签署了Pdf,所以我的TSA服务设置正确。 我遇到的问题是,每次我尝试使用LTV签署Pdf时,都会出现以下错误:“eu.europ
我正在使用java,从服务器收到了一些json字符串。我收到了带有readUTF的json字符串,但是有一些数据丢失了。我没有收到每个json包的前两个字符。另一个问题是收到json字符串有延迟。例如,服务器发送了一个json字符串,客户端无法收到它,直到服务器和客户端发送的大约50个json字符串突然显示所有的json字符串。主要问题是什么? 因为服务器用UTF格式发送数据,所以我不能用Buff
fsharp 是一个开源的 F# 语言编译器。
本文向大家介绍Django数据库连接丢失问题的解决方法,包括了Django数据库连接丢失问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 OperationalError: (2006, 'MySQL server has gone away') OperationalError: (2013, 'Los