DPR-ERR-2058 错误

本文介绍了在访问IIS中配置的Cognos管理控制台时遇到DPR-ERR-2058错误的解决方法。通过备份并删除特定配置文件,重启Cognos Server服务,可以将ContentManager配置恢复到默认状态。
昨天就改了改端口配置就遇到这个问题,在访问iis中配置的cognos管理控制台时,出现DPR-ERR-2058 错误

上网找了找资料
解决方法就是
将Cognos安装目录里头的configuration下的文件夹encryptkeypair,signkeypair,和文件coglocale.xml,cogstartup.xml,剪切出来备份一下,万一出错再挪回去,不过应该差不多不会出错,不过防止万一嘛。然后重新运行Cognos Server,进去之后就会发现原来的Content Manager里头配置的回复称默认的配置了,重新配置cognos就OK了


不过我个人也遇到了个问题,和我一起研究的朋友就没有

DPR-ERR-2008

The dispatcher is unable to process the request. The request is directed to an unknown service name: .

最关键后面还没有service的名字,居然是个空的…………,郁闷
不对,为什么保存的图片是空白的:downloadFile(url) { return new Promise((resolve, reject) => { if (url.startsWith('wxfile://')) { resolve(url) } else { uni.downloadFile({ url, success: (res) => { if (res.statusCode === 200) resolve(res.tempFilePath) else reject(new Error(`下载失败: ${res.statusCode}`)) }, fail: (err) => { reject(new Error(`网络错误: ${JSON.stringify(err)}`)) } }) } }) }, getImageInfo(src) { return new Promise((resolve, reject) => { uni.getImageInfo({ src, success: resolve, fail: reject }) }) }, getRect(selector) { return new Promise((resolve, reject) => { this.$nextTick(() => { uni .createSelectorQuery() .in(this) .select(selector) .boundingClientRect((rect) => { if (rect) resolve(rect) else reject(new Error(`无法获取 ${selector} 的布局信息`)) }) .exec() }) }) }, canvasToTempFilePath(canvas, opts) { return new Promise((resolve, reject) => { uni.canvasToTempFilePath( { ...opts, canvas, success: (res) => resolve(res.tempFilePath), fail: (err) => reject(err) }, this ) }) }, async saveAndPreview() { if (!this.fileImage) { return uni.showToast({ title: '请先上传图片', icon: 'none' }) } showLoading('正在生成') try { // Step 1: 下载用户图片到本地 const imgLocalPath = await this.downloadFile(this.fileImage) const modalLocalPath = await this.downloadFile(this.modalArr[this.currentIndex].imgUrl) // Step 2: 获取原图信息 const imageInfo = await this.getImageInfo(imgLocalPath) const { width: imgW, height: imgH } = imageInfo // Step 3: 获取容器尺寸(.upload-view) const rect = await this.getRect('.upload-view') const viewW = rect.width const viewH = rect.height // Step 4: 设置 canvas 大小(放大2倍以提高清晰度) const dpr = uni.getSystemInfoSync().pixelRatio || 2 const canvasW = viewW * dpr const canvasH = viewH * dpr // Step 5: 创建 2D Canvas 并获取 context const query = uni.createSelectorQuery().in(this) const res = await new Promise((resolve, reject) => { query .select('#previewCanvas') .node((result) => { resolve(result) }) .exec() }) const canvas = res.node const ctx = canvas.getContext('2d') // 设置 canvas 实际绘制分辨率 canvas.width = canvasW canvas.height = canvasH // 清屏并填充白色背景 ctx.clearRect(0, 0, canvasW, canvasH) ctx.fillStyle = '#ffffff' ctx.fillRect(0, 0, canvasW, canvasH) // 计算图片显示尺寸(保持比例) const imgAspect = imgW / imgH const viewAspect = viewW / viewH let displayWidth, displayHeight if (imgAspect > viewAspect) { displayWidth = viewW displayHeight = viewW / imgAspect } else { displayHeight = viewH displayWidth = viewH * imgAspect } // 缩放到 canvas 分辨率 displayWidth *= dpr displayHeight *= dpr // 中心点 + 偏移(也乘以 dpr) const centerX = canvasW / 2 + this.imageTransform.translateX * dpr const centerY = canvasH / 2 + this.imageTransform.translateY * dpr // 开始绘制变换:平移 -> 旋转 -> 缩放(含镜像) ctx.save() ctx.translate(centerX, centerY) ctx.rotate((this.imageTransform.rotate * Math.PI) / 180) // 注意:scale 控制缩放与翻转(负值表示镜像) ctx.scale( this.imageTransform.scale * this.imageTransform.flipHorizontal * dpr, this.imageTransform.scale * this.imageTransform.flipVertical * dpr ) // 绘制用户图片(以中心为基准) const img = canvas.createImage() img.src = imgLocalPath ctx.drawImage( img, -displayWidth / 2 / dpr / this.imageTransform.scale, // 调整坐标适应 scale -displayHeight / 2 / dpr / this.imageTransform.scale, displayWidth / dpr / this.imageTransform.scale, displayHeight / dpr / this.imageTransform.scale ) ctx.restore() // 绘制模板层(覆盖整个 canvas) const modalImg = canvas.createImage() modalImg.src = modalLocalPath ctx.drawImage(modalImg, 0, 0, canvasW, canvasH) // Step 6: 导出为临时文件路径 setTimeout(async () => { try { // 将 canvas 内容转为临时文件路径 const tempFilePath = await this.canvasToTempFilePath(canvas, { x: 0, y: 0, width: canvasW, height: canvasH, destWidth: canvasW, destHeight: canvasH, fileType: 'png', quality: 1 }) // 调用你的上传逻辑 this.getPhotoUpload({ width: canvasW, height: canvasH, src: tempFilePath }) uni.hideLoading() } catch (err) { console.error('导出失败:', err) uni.hideLoading() uni.showToast({ title: '保存失败,请查看控制台', icon: 'none' }) } }, 500) console.log('🔍 当前图片变换参数:', { ...this.imageTransform }) } catch (err) { uni.hideLoading() console.error('【详细错误】', { message: err.message, stack: err.stack, name: err.name, toString: err.toString() }) uni.showToast({ title: '处理失败', icon: 'none' }) } } 修复这个代码
最新发布
09-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值