Win32 service - Errno::EINVAL (Invalid argument)解决方法

Mongrel在windows 2003 服务器上以 service的方式运行时,经常会出现Errno::EINVAL (Invalid argument)类错误,一般在post数据的时候特别容易出现. 解决办法有以下几种.


1. 有个比较简单的解决办法,就是把start_form_tag改成form.这样的确很难再出现这个问题.
2. mongrel以console的方式来运行.
3. 重新定向stderr和stdout到某个指定的文件.


下面来说下,为什么会出现这个错误. 仔细观察下这些错误发生时的提示,比如有一个函数在里面 puts函数.
错误发生的更本原因也是这个函数.

这个函数在调用的时候,要拥到stderr,和stdout,但是这两个对象是pipe. 如果是控制台模式下,stderr,和stdout管道是一定存在,并且可以访问到的. 但是win32 services下面,是没有stderr和stdout的.所以调用puts函数必然出错.

各位可以试下,随便写个页面,里面放上puts函数,放到 win32,mongrel service模式下面去运行,就会出现Errno::EINVAL (Invalid argument)错误.

如果要根本上解决这个问题,最好的办法还是重定向 stderr,stdout. 可以在environment.rb中加入
STDOUT.reopen("c:\log\stdout.log") 日志路径随你们工程环境来修改. stderr的重定向代码也一样.就不多写了.
家庭网络中,路由器和交换机的连接顺序 它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。 阅读详情

相关推荐

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 492

使用yarn add安装依赖时报错‘error An unexpected error occurred: “EINVAL: invalid argument, unlink ’

原因是需要断开进程才能继续安装你当前的依赖。 完成如下两步操作: ① Ctrl+C停止项目运行 ② 删除node_module文件夹 再执行安装即可。 博主经验有限,若有不足,欢迎交流,共同改进~ 有意可加Q群 908417285 交流学习。 乾坤未定,你我皆是黑马 ...

綦枫Maple的博客 3592

PyTorch实战:从零构建CNN图像分类模型

卷积神经网络(CNN)作为计算机视觉的核心架构,通过局部连接和权值共享机制高效处理图像数据。其核心组件包括卷积层、池化层和全连接层,其中PyTorch的动态计算图特性为CNN实现提供了灵活的开发环境。在工程实践中,使用CIFAR-10这类标准数据集可以快速验证模型性能,而数据增强和批归一化等技术能有效提升模型泛化能力。通过PyTorch实现CNN不仅能够掌握图像分类的基本原理,还能为后续迁移学习和复杂视觉任务打下基础,特别是在结合Adam优化器和学习率调度策略后,模型收敛速度和准确率都能得到显著提升。

weixin_42405592的博客 318

ubuntu常见问题及解决方案

ubuntu常见问题

妖米的博客 406

惊爆揭秘!异步启动永磁同步电机,调速核心技术大起底

传统的同步启动方式需要额外的同步设备,成本高且维护复杂。异步启动PMSM则巧妙地利用了鼠笼感应电机的启动原理,无需额外同步设备即可实现安全可靠的启动。其核心思想是将定子电流分解为两个正交的分量:磁链分量(id)和转矩分量(iq),分别控制这两个分量,从而实现对电机转矩的精确控制。随着电机设计技术的不断进步和控制算法的不断优化,异步启动PMSM的性能将得到进一步提升,应用范围也将更加广泛。异步启动PMSM的调速技术是其核心技术之一,直接影响着电机的性能和应用范围。

wen8789的博客 983

立创开源TinyAWG:基于ZYNQ7010的35MHz带宽200MSa/s任意波形发生器设计与实现

本文详细解析了立创开源TinyAWG的设计与实现,这是一款基于ZYNQ7010芯片的低成本高性能任意波形发生器。项目实现了35MHz带宽和200MSa/s采样率,核心采用ARM+FPGA协同架构,FPGA负责高速DDS信号生成,ARM运行Linux并搭载LVGL图形界面。文章涵盖了硬件选型、电路设计、软件逻辑及性能测试,为复刻和学习ZYNQ系统设计、高速DAC应用提供了完整参考。

weixin_42576467的博客 434

如何解决npm命令Error: EINVAL: invalid argument, mkdir ‘xxxx‘?

从上面的图大家可以看到当我就输入npm -v这样的命令时,虽然后面也输出了npm所对应的版本号,但是中间还是抛出了我上面所说的Error,那么是到底什么原因造成的呢?进入了系统用户目录后,然后就可以找到文件名为 .npmrc这个文件,打开这个文件后,然后就可以看到prefix=xxxx和cache=xxxx这两个属性,于是就可以将xxxx中的内容改成你系统中实际配置的路径就可以了。那么到如何解决这个问题呢?使用WIN+R打开运行的小窗口,然后输入.后点击确定,这样就进入了你的C盘的系统用户目录;

书中自有妍如玉的博客 3457

杰理芯片外挂Flash音乐播放功能避坑指南(附FAT文件系统配置)

本文详细解析了杰理芯片外挂Flash实现音乐播放功能的技术要点与常见问题,包括硬件连接、SPI驱动配置、FAT文件系统烧录及音乐播放集成等关键环节。特别针对Flash选型、FAT文件系统配置等易错点提供实用解决方案,帮助开发者高效完成嵌入式音频系统开发。

yhn45678901的博客 833

Linux错误代码:errno.h与返回值 -EINVAL

1.概述 编写Linux驱动,看见返回值为“return -EINVAL”,不是很清楚,特此查询。 EINVAL是定义在errno.h中的一个宏定义,它定义了一个整形变量(此处值为22),是错误代码的一个取值。EINVAL表示 无效的参数,即为invalid argument ,包括参数值、类型或数目无效等。 2.错误代码的概念 错误(error )是指人们在使...

我的博客 2万+

Moltbot 超详细安装使用教程(初学者版)

你在外面逛街,用微信/Telegram 发消息说"帮我查一下明天的天气"它立刻帮你查好并回复你说"帮我在电脑上新建一个文件夹叫'工作文档'"它真的帮你在电脑上创建了这就是 Moltbot ——一个能真正帮你干活的 AI 助手。API Key 就像是一把"钥匙",让 Moltbot 能够使用 AI 服务。

weixin_51040479的博客 2015

SAP UI5 百科全书的目录

笔者 12 年 SAP UI5 开发岁月中写下的 595 篇 SAP UI5 学习笔记,全部收录到《SAP UI5 百科全书》专栏中去,目录如下。请大家按照自己的学习需要,根据关键字搜索到对应的文章,然后进行学习。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3830

ftp 上传425异常记录

ftp 上传425异常记录 需求:上传文件到Windos server 2008系统服务器,再使用ftp上传这些文件到Centos7服务器中保存; 关闭防火墙时使用cmd名上传正常,一开启就报425;开启了20 及21 端口,发现还是不行;检查发现防火墙阻止应用通知未选择,点击勾选,使用cmd再次进行上传测试;这时防火墙通知了阻止的程序服务,点击允许放行;再进行测试,上传成功; ...

LzmCode的博客 1328

fanuc机器人KAREL中 函数的应用

本次课程讲解编程的思路。很多的同学都玩过积木,一个一个的模块逐渐累积起来,通过彼此之间的相互联系,最终形成一个完整的整体。其实编程也是这样。 将一个对象根据其特点进行模块化拆分,尤其是一些特点非常相似的内容,将其变成一个模块。然后通过传递参数,实现不同的功能,这就是模块化编程。

haier123888的博客 2744

libuv 错误处理完全指南:负值错误码、UV_ERRNO_MAP 与跨平台错误翻译

libuv 采用"负数即错误"的统一约定,所有 API 通过返回负值错误码或向 status 参数写入负值来报告失败,本文以官方文档 [errors.rst](https://link.gitcode.com/i/b3b6acb4d66a18d989d9dc7027f67922) 为主体,结合仓库源码全面讲解错误码体系、`UV_ERRNO_MAP` 宏机制以及 `uv_strerror` / `u

gitblog_00395的博客 373

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

libmodbus 连接函数 modbus_connect() 全解析:TCP 与 RTU 后端的连接建立与错误处理

`modbus_connect()` 是 libmodbus 中负责建立 Modbus 通信连接的核心入口:无论你是通过 TCP/IPv4(`modbus_new_tcp`)、TCP 域名/IPv6(`modbus_new_tcp_pi`)还是串口 RTU(`modbus_new_rtu`)创建上下文,最终都要调用它把 `modbus_t` 上下文真正"接上线"。本文将围绕官方文档 [docs/m

gitblog_00555的博客 187

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

npm升级报错Error: EINVAL: invalid argument, mkdir解决办法

在Windows服务器安装nodejs的时候,由于不想把文件存储在C盘,需要修改存储位置, 可以使用 npm config ls 查看配置,再使用命令npm config set的时候由于打错了分号, 再运行的时候就开始报错npm命令Error: EINVAL: invalid argument, mkdir 卸载重装还是一样的报错。 这是由于配置文件的错误,造成以上的问题出现,然而如果不解决配置...

qq_39548988的博客 7813

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【错误解决】quartus启动modelsim仿真出现couldn‘t execute invalid argument的错误

是因为在modelsim属性中曾将其设置为以管理员身份运行,将"以管理员身份运行此程序"取消即可.

zdb 1393

Error: EINVAL: invalid argument, mkdir C:\Program Files\nodejs

查看版本的时候出现了标题的错误,大概意思就是没操作权限,更改了报错路径下的文件夹的权限也不行,所以直接在其他盘创建了新文件夹。在其他盘下新建nodejs文件夹,在nodejs文件夹下新建两个文件夹。修改C盘用户文件夹(C:\Users\xxx)下的。然后重新打开命令行输入。

LaoHeiLC的博客 1096

windows 字符串处理

在 windows 开发的必要知识我对字符编码做了一个应该还算可以的解释。之后我们来谈谈windows 的字符。windows 中的字符串在C/C++中的每一种数据类型大小都是和系统相关的,在window下1字节大部分情况是8bit,short大部分情况下为16bit的,而通过上面我们知道windows 中支持 8-bit的 ASCII码和16-bit的Unicode码。而又因为windows 是基

god_wen的博客 2467

Linux系统错误码errno详解

​在Linux系统编程中, errno是一个关键的概念 ,它是一个由操作系统维护的全局变量,专门用于存储最近发生的错误代码。这个变量通常被定义为一个整型,在头文件中声明。它的主要作用是在系统调用或库函数失败时提供详细的错误信息,帮助开发者快速定位和解决问题。 值得注意的是,errno的值可能会被后续的系统调用覆盖,因此在使用时需要及时读取和处理。这种机制使得errno成为了一个动态更新的错误记录器,能够实时反映系统中最近遇到的问题。

2401_86544677的博客 3041

Linux串口编程select函数返回-1,errno=22(EINVAL)原因

linux串口编程select

xiongpursuit88的博客 4516

npm命令Error: EINVAL: invalid argument, mkdir

之前安装过npm,今天重新下载了一个,版本进行更新。出现以下问题: 安装nodejs的时候,在文件夹中: 在node.js的安装目录下创建两个文件夹,node_cache和node_global,然后命令行设置: npm config set cache "D:\nodejs\node_cache" npm config set prefix "D:\nodejs\node_global...

Lawless 9810

java.io.IOException: open failed: EINVAL (Invalid argument)

今天客服反馈一bug,同样的课在有些手机上不能下载,而这块手机下载别的课时可以的。后来发现控制台打印的java.io.IOException: open failed: EINVAL (Invalid argument)。原来是下载时候在本地创建文件的时候没有创建成功,原因是有些手机系统是FAT32的,创建文件时文件名中不能包含<>?:这样的特殊字符,如果包含的时候,文件是不能创建的。把文件名修改一

u011139868的博客 1352

在 Ubuntu on Windows 下Webpack 错误:uv_interface_addresses解决

在 Ubuntu on Windows 上 用webpack 打包 react 程序时 报出错误 ERROR in EINVAL: invalid argument, uv_interface_addresses google了一下发现是 networkInterfaces()出错,简单的解决方法是在webpack.config.js里开头增加一段代码: try { req

做最好的自己 3172
上一篇: 怀疑spider,网站管理员们帮忙找找.
下一篇: 请教Js代码的版权问题?
jackforce
博客等级 码龄25年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值