安装期间将应用程序重定向到不同web services

Dynamic systems(非线性系统,线性系统) 阅读详情
 

在安装期间将应用程序重定向到不同的 XML Web services


Steve Hoag
Visual Studio Team
Microsoft Corporation
2001 年 11 月

 

摘要:本文介绍了如何在 Visual Basic® .NET 中创建一个 Web 应用程序,通过使用 URL Behavior 属性、Installer 类和 Web 安装程序项目将该应用程序重定向到不同的 XML Web services。

目录

简介

在开发以 XML Web services 为目标的应用程序时,通常应该以 Web 服务器上已安装的 XML Web services 为目标。这是一个准则,不过在部署应用程序的产品版本时,有时也需要以其他 XML Web services 为目标。例如,您可能已将开发服务器上的 XML Web services 的测试版本作为目标,但是完成的应用程序需要将另一个服务器上的 XML Web services 的安装版本作为目标。您可能还希望安装该应用程序的人员在安装期间可以选择 XML Web services 的版本,例如,Intranet 上的版本或者是可以从防火墙外部进行访问的版本。

本文介绍了如何创建可以重定向到不同的 XML Web services 的 Web 应用程序。创建过程包括:

  1. 指定 URL Behavior 属性,以在运行时查找 XML Web services。
  2. 添加能在安装结束时执行自定义操作的安装组件。
  3. 使用安装程序项目为应用程序创建一个包含自定义用户界面的安装程序。

第一步是创建包含对 XML Web services 进行 Web 引用的 Web 应用程序。有关创建 Web 应用程序的详细信息,请参阅 Visual Studio® .NET 文档中的 Walkthrough: Creating an XML Web services Using Visual Basic or Visual C#(英文)。

将 URL Behavior 设置为 Dynamic

为了在运行时查找 XML Web services,应用程序将存储该 XML Web services 的 URL。Web 引用(用于 XML Web services)的 URL Behavior 属性决定 URL 的存储位置。如果 URL Behavior 属性被设置为 Static(默认值),则 URL 将被硬编码为 Web 引用的一部分。如果 URL Behavior 属性被设置为 Dynamic,则指定 URL 的条目将被添加到该应用程序的 Web.config 文件的 appSettings 段。

将 URL Behavior 属性设置为 Dynamic

  1. 在 Solution Explorer(解决方案资源管理器)中,展开 Web References(Web 引用)节点并选择对 XML Web services 的引用。
  2. 在 Properties(属性)窗口中,选择 URL Behavior 属性并将其更改为 Dynamic。
  3. 在 Solution Explorer(解决方案资源管理器)中,选择 Web.config 文件并双击以打开该文件。

    在该文件末尾,应该能够找到一个 <appSettings> 段,其中包含指定 XML Web services 名称的关键字和指定 URL 的值。例如,对于能够访问本地计算机上的 MyWebService 的名为 MyWebApp 的应用程序,其外观类似于:

    <appSettings><add key="MyWebApp.localhost.Service1"
    value=http://localhost/MyWebService/Service1.asmx/></appSettings>

下一步是添加 Installer 类,用于在安装期间修改 .config 文件。

添加 Installer 类

Installer 类(也称为安装组件)是在安装过程中被当作自定义操作调用的 .NET 框架类。在这种情况下,您需要添加 Installer 类来代替 Install 方法,以添加修改 .config 文件的代码。有关 Installer 类的详细信息,请参阅 Visual Studio .NET 文档中的“Introduction to Installation Components”。

添加 Installer 类

  1. 在 Project(项目)菜单中,选择 Add New Item(添加新项)。
  2. 在 Add New Item(添加新项)对话框中,选择 Installer Class(Installer 类)并将 Name(名称)更改为 WebServiceInstaller。

    单击 Open(打开)后,该类将被添加到您的项目,并打开包含 Installer 类的设计器。

  3. 双击设计器以打开 Code Editor(代码编辑器)。
  4. 在 Installer 类模块(位于 End Class 声明的上面)的底部添加用于 Install 方法的以下代码:
    Public Overrides Sub Install(ByVal stateSaver As 
    System.Collections.IDictionary)
    ' 获取在 CustomActionData 中传递的参数。
    Dim installlog As New System.IO.StreamWriter("Installation.log")
    installlog.AutoFlush = True
    Try
    Dim ProvidedName As String
    =Me.Context.Parameters.Item("ServerName")
    Dim SvcName As String = Me.Context.Parameters.Item("ServiceName")

    installlog.WriteLine("开始编辑配置文件")

    If ProvidedName = "" Or SvcName = "" Then
    Throw New InstallException("未指定参数")
    End If

    ' 使用反射查找配置文件的位置。
    Dim Asm As System.Reflection.Assembly =
    System.Reflection.Assembly.GetExecutingAssembly
    Dim strConfigLoc As String
    strConfigLoc = Asm.Location

    Dim strTemp As String
    strTemp = strConfigLoc
    strTemp = strTemp.Remove(strTemp.LastIndexOf("/"),
    Len(strTemp) – strTemp.LastIndexOf("/"))
    strTemp = strTemp.Remove(strTemp.LastIndexOf("/"),
    Len(strTemp) – strTemp.LastIndexOf("/"))

    Dim FileInfo As System.IO.FileInfo =
    New System.IO.FileInfo(strTemp & "/web.config")

    installlog.WriteLine("文件信息:" & strTemp)

    If Not FileInfo.Exists Then
    Throw New InstallException("缺少配置文件")
    End If

    ' 将配置文件加载到 XML DOM。
    Dim XmlDocument As New System.Xml.XmlDocument()
    XmlDocument.Load(FileInfo.FullName)

    ' 找到正确的节点并将其更改为新值。
    Dim Node As System.Xml.XmlNode
    Dim FoundIt As Boolean = False
    For Each Node In
    XmlDocument.Item("configuration").Item("appSettings")
    ' 忽略所有注释。
    If Node.Name = "add" Then
    If Node.Attributes.GetNamedItem("key").Value =
    "appname.servername.service" Then
    ' 注意,“Service1.asmx”应当被替换为
    ' Web service 文件的实际名称。
    Node.Attributes.GetNamedItem("value").Value =
    "http://" & ProvidedName & "/" &
    SvcName & "/Service1.asmx"
    FoundIt = True
    End If
    End If
    Next Node

    If Not FoundIt Then
    Throw New InstallException("配置文件不
    包含 ServerName 段")
    End If

    ' 编写新的配置文件。
    XmlDocument.Save(FileInfo.FullName)

    Finally
    installlog.WriteLine("结束对配置文件的编辑")
    installlog.Close()
    End Try

    End Sub

    以上代码首先创建用于记录自定义操作进度的安装日志文件。System.Reflection 命名空间用于查找所安装的程序集并查找关联的 .config 文件。XML 文档模型用于遍历 .config 文件,直至找到 appSettings 段。找到关键字 appname.servername.service 后,其关联值将发生更改以包含传入的参数,从而将应用程序重定向为使用新的 XML Web services。

  5. 在 Solution Explorer(解决方案资源管理器)中,选择 Web.config 文件并双击以打开该文件。
  6. 在 appSettings 段中复制 XML Web services 的关键字值。关键字的形式为 appname.servername.service,其中 appname 是应用程序的名称,servername 是 XML Web services 所在的服务器,service 是 XML Web services 的名称。
  7. 在 Code Editor(代码编辑器)中打开 Installer 类模块,并使用上一步中复制的值替换 appname.servername.service。

下一步是为应用程序添加一个安装程序项目。

添加安装程序项目

安装程序项目用于为应用程序创建安装程序。安装程序项目以 Windows 安装程序技术为基础,包含在安装期间运行自定义操作以及自定义安装用户界面等多项功能。有关安装程序项目的详细信息,请参阅 Visual Studio .NET 文档中的 Deploying Applications and Components(英文)。

添加安装程序项目

  1. 在 File(文件)菜单中,指向 Add Project(添加项目),然后单击 New Project(新建项目)。
  2. 在 Add New Project(添加新项目)对话框中,选择 Project Types(项目类型)窗格中的 Setup and Deployment Projects(安装和部署项目)节点。
  3. 在 Templates(模板)窗格中,选择 Web Setup Project(Web 安装程序项目)并单击 OK(确定)。

    该项目将被添加到解决方案中,且 File System Editor(文件系统编辑器)将被打开。

  4. 在 Properties(属性)窗口中,选择 ProductName 属性并将其名称设置为与应用程序的名称相同。
  5. 在 File System Editor(文件系统编辑器)中,选择 Web Application Folder(Web 应用程序文件夹)。
  6. 在 Action(操作)菜单中,指向 Add(添加),然后单击 Project Output(项目输出)。
  7. 在 Add Project Output Group(添加项目输出组)对话框中,选择应用程序项目,然后选择 Primary Output(主输出)和 Content Files(内容文件),并单击 OK(确定)。

下一步是添加将在安装结束时运行的自定义操作。

将 Installer 类添加为自定义操作

自定义操作用于在安装结束时运行代码,以便执行安装过程中无法处理的操作。自定义操作的代码可以包含在 .dll 文件、.exe 文件、脚本文件或程序集文件中。有关自定义操作的详细信息,请参阅 Visual Studio .NET 文档中的 Custom Actions Management in Deployment(英文)。

将 Installer 类添加为自定义操作

  1. 在 Solution Explorer(解决方案资源管理器)中,选择 Setup Project(安装程序项目)。
  2. 在 View(视图)菜单中,指向 Editor(编辑器),然后单击 Custom Actions(自定义操作)。

    Custom Actions Editor(自定义操作编辑器)将打开。

  3. 在 Custom Actions Editor(自定义操作编辑器)中,选择 Install(安装)节点。
  4. 在 Action(操作)菜单中,选择 Add Custom Action(添加自定义操作)。
  5. 双击 Web Application Folder(Web 应用程序文件夹),然后选择 Primary output(主输出),并单击 OK(确定)。
  6. 在 Properties(属性)窗口中,选择 InstallerClass 属性并确保将其设置为 true。
  7. 选择 CustomActionData 属性并输入以下文本:/ServerName=[EDITA1] /ServiceName=[EDITA2]

    CustomActionData 属性提供两个被传递到自定义操作的参数,参数之间用空格分隔。

下一步是添加用户界面以便在安装过程中输入信息。

添加用户界面对话框

安装过程中将显示用户界面对话框以便从用户收集信息。有关用户界面对话框的详细信息,请参阅 Visual Studio .NET 文档中的 User Interface Management in Deployment(英文)。

添加自定义用户界面对话框

  1. 在 Solution Explorer(解决方案资源管理器)中,选择 Setup Project(安装程序项目)。
  2. 在 View(视图)菜单中,指向 Editor(编辑器),然后单击 User Interface(用户界面)。
  3. 在 User Interface Editor(用户界面编辑器)中,选择 Start(开始)节点。
  4. 在 Action(操作)菜单中,选择 Add Dialog(添加对话框)。
  5. 在 Add Dialog(添加对话框)对话框中,选择 Textboxes (A)(文本框 [A])对话框,然后单击 OK(确定)。
  6. 在 Action(操作)菜单中,选择 Move Up(上移)并重复执行该操作,直到 Textboxes (A)(文本框 [A])对话框位于 Installation Address(安装地址)对话框的上方。
  7. 在 Properties(属性)窗口中,设置以下属性:
    属性值
    BannerText输入服务器名称和服务名称
    Edit1Label服务器名称:
    Edit1ValueLocalhost
    注意:此值指定默认服务器。您可以在此处输入自己的默认服务器名称。
    Edit2Label服务名称:
    Edit2Value<服务的名称>
    Edit3Visiblefalse
    Edit4Visiblefalse

    注意:Edit1Property 属性被设置为“EDITA1”,Edit2Property 属性被设置为“EDITA2”。这些值与在 Custom Actions Editor(自定义操作编辑器)的 CustomActionData 属性中输入的值相对应。如果用户在安装期间在这些编辑控件中输入文本,CustomActionData 属性将自动传递这些值。

生成和安装

最后一步是生成安装程序项目以创建安装程序,然后将应用程序安装到目标服务器上。

生成安装程序项目

  • 在 Build(生成)菜单中,选择 Build Projectname(生成 Projectname),其中 Projectname 是您的安装程序项目的名称。

将应用程序部署到开发计算机的 Web 服务器上

  • 在 Solution Explorer(解决方案资源管理器)中,选择安装程序项目,然后在 Project(项目)菜单中选择 Install(安装)。

将应用程序部署到其他计算机的 Web 服务器上

  1. 在 Windows 资源管理器中,浏览到项目目录,并找到生成的安装程序。默认路径为 /Documents and settings/您的登录名/安装程序项目名/项目配置/产品名.msi。默认的项目配置为 Debug。
  2. 将目录中的 .msi 文件以及所有其他文件和子目录都复制到 Web 服务器。
  3. 在 Web 服务器上,双击 Setup.exe 文件以运行安装程序。

总结

我们可以看出,重定向应用程序以使用不同的 XML Web services 的过程并不难。虽然本例使用以 XML Web services 为目标的 Web 应用程序,但您可以轻松地将其更改为用于 Windows 应用程序:只需要使用 app.config 文件代替 Web.config 文件,并使用安装程序项目代替 Web 安装程序项目。除此以外,过程完全相同。

本文介绍了几项新技术:使用 URL Behavior 属性在配置文件中存储信息,使用 Installer 类在安装期间执行操作,以及使用 CustomActionData 属性在安装过程中存储用户信息。

 
使用OAuth 2.0访问Google API 参考:https://developers.google.com/identity/protocols/oauth2 使用OAuth 2.0访问Google API 注意:使用Google的OAuth 2.0实现受OAuth 2.0政策的约束。 Google API使用OAuth 2.0协议进行身份验证和授权。Google支持常见的OAuth 2.0方案,例如针对Web服务器,客户端,已安装和有限输入的设备应用程序的方案。 首先,请从Google API控制台获取OAuth 2.0客户... 阅读详情

相关推荐

Windows Server 2019 IIS部署静态网站:局域网内网Web服务搭建指南

Web服务器是承载网站应用、实现网络信息共享的核心基础设施,其工作原理是通过HTTP/HTTPS协议响应客户端请求并返回资源文件。在技术选型中,IIS(Internet Information Services)作为Windows平台原生的Web服务器,凭借其与操作系统的深度集成、稳定的性能和图形化的管理界面,在内部网络部署场景中展现出独特的工程价值。无论是用于构建内部文档中心、项目演示平台,还是作为本地API服务的承载环境,IIS都能提供可靠的服务支撑。特别是在离线或无公网访问需求的局域网环境下,通过合理

weixin_30634661的博客 391

CentOS 7 Apache www重定向配置实战指南

域名规范化是搜索引擎优化(SEO)和网站可信度建设的基础环节,其核心在于统一 canonical 域名,避免 www 与 non-www 版本被识别为重复内容。原理上,HTTP 协议通过 Host 头区分虚拟主机,Apache 必须显式配置 301 重定向以实现权威域名收敛。该操作不仅提升 Google 排名权重集中度,更保障 SSL 证书、统计归因、CDN 回源及第三方平台(如微信开放平台)回调的一致性。在 CentOS 7 环境中,需协同处理 SELinux 上下文、firewalld 端口策略、mod

weixin_34038293的博客 349

Windows Server 2016部署SCCM 2019实战:从环境搭建到核心功能验证

企业IT运维中,自动化部署与管理是提升效率、保障安全的核心诉求。Configuration Manager(SCCM)作为微软System Center套件中的关键组件,其原理在于通过集中式控制台,实现对操作系统部署、软件分发、补丁管理及硬件资产收集的统一自动化管理。这项技术的核心价值在于将IT管理员从繁琐的重复性工作中解放出来,确保大规模终端环境的一致性与合规性,广泛应用于需要管理数十至数千台Windows设备的企业、教育及政府机构。部署SCCM是一项系统工程,尤其考验对前置条件与依赖关系的把控。本文以W

weixin_30908941的博客 374

Android10.0 Framework层服务一览表

Android10.0 Framework层服务一览表

weixin_44205232的博客 2463

Ubuntu 18.04 手动安装 Docker Compose v2 正确姿势

Docker Compose 是用于定义和运行多容器应用的标准化编排工具,其核心原理是通过 YAML 文件声明服务依赖、网络与卷,并由 CLI 解析执行。v1 与 v2 版本存在根本性差异:v1 基于 Python,依赖系统环境;v2 重构为 Go 语言单二进制,无外部依赖、启动更快、兼容现代 Docker API 与配置字段(如 deploy、profiles)。在 Ubuntu 18.04 这类长期支持但生态滞后的系统中,官方 apt 源仅提供过时的 v1.17.1,无法解析新版 compose 配置,

diaoju3333的博客 824

Docker容器化部署宝塔面板:云服务器Web应用管理新方案

容器化技术通过将应用及其依赖打包成标准单元,实现了环境隔离与一致性,解决了传统部署中环境配置复杂、版本冲突等痛点。其核心原理是利用操作系统级虚拟化,在共享内核的基础上提供独立的运行环境,具有启动快、资源占用低、易于迁移等技术优势。在Web应用部署与服务器管理场景中,容器化技术能显著提升运维效率和标准化水平。本文聚焦于将流行的服务器管理面板——宝塔面板——封装入Docker容器进行部署,为读者提供一种高效、隔离且易于维护的云服务器可视化运维方案,涵盖从环境准备、容器创建、面板安装到日常管理的完整实践流程。

weixin_34267123的博客 448

Rockchip Android平台内存优化及系统裁剪

Android内存优化、系统裁剪,RK356X平台通过裁剪优化开机时间可以减少8秒左右

weixin_43245753的博客 1万+

Docker Desktop Windows安装失败的根源:WSL2就绪性诊断指南

Docker Desktop 并非独立容器运行时,而是深度依赖 WSL2 的 Windows 容器调度中枢。其核心原理在于复用 WSL2 提供的 Linux 内核兼容层、网络栈与文件系统,从而避免重复造轮子;这一架构选择带来显著技术价值——轻量、安全、与 Windows 生态深度协同,但也要求开发者必须掌握 WSL2 就绪性验证能力。典型应用场景包括金融级开发环境部署、企业多版本共存、CI/CD 流水线标准化等。当出现 'An error occurred while running a WSL comma

weixin_30621711的博客 449

dynamic libraries not enabled; check your Lua installation

[plain] view plain copy [:1000001] LAUNCH logger   [:1000003] LAUNCH gate L ! 0.0.0.0:2013 5 256 0  [:1000002] LAUNCH master 0.0.0.0:2013  [:1000004] Harbor(0) connect to 1...

明潮的BLOG 2463

数字音频接口之I2S总线协议详解

1、SDATA,也就是串行数据信号,使用二进制传输数字信号。请注意数据的传输形式为补码的方式2、例如音频的采样率是8K,一s内存采样8K个点,一个点包含一个左声道,一个右声道,所以LRCK是8K,BCLK是2×采样频率×采样位数3、同时双向(TX和RX)音频流:串行数据同步移位到时钟信号SCK和LRCK。在SCK的下降沿将TX数据写入SDOUT引脚,并在SCK的上升沿从SDIN引脚读取RX数据。始终首先发送最高有效位(MSB);TX和RX均可在主模式和从模式下使用。

卓学课堂 3万+

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 275

在安装期间将应用程序重定向到不同的 XML Web Services

在安装期间将应用程序重定向到不同的 XML Web Services点击此处阅读全文

904

【TM1650】STM8S TM1650芯片控制程序

以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include &lt;iostm8s103f3.h&gt; #include &lt;intrinsics....

cxw312864660的博客 1万+

在安装期间将应用程序重定向到不同的 XML Web services

在安装期间将应用程序重定向到不同的 XML Web services Steve HoagVisual Studio TeamMicrosoft Corporation 2001 年 11 月 摘要:本文介绍了如何在 Visual Basic? .NET 中创建一个 Web 应用程序,通过使用 URL Behavior 属性、Installer 类和 Web 安装程序项目将该应用程序重定向到不同

Clarion.Li's Knowledge Base 974

Wireshark 4.6 TCP 流图解析:3种拥塞控制算法可视化对比

本文深入解析Wireshark 4.6的TCP流图功能,通过可视化对比Reno、Cubic和BBR三种主流拥塞控制算法的性能特征。文章提供详细的实验环境搭建方法、流图分析工具使用技巧,以及算法调优建议,帮助网络工程师优化TCP性能。

weixin_29291573的博客 446

Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案

本博客在总结这些问题及其解决方案,为遇到类似问题的兄弟提供参考,如果我后续有碰到其他Docker 问题也会在此更新补充。

我其实什么都不会 1646

ASP.NET应用程序的安全方案(一)—身份验证

摘要:本文ASP.NET应用程序身份验证的概念,介绍了各种身份验证模式并进行了比较,阐述了选择身份验证模式的机制,并给出了一种基于窗体身份验证模式的实现方法。 关键字:身份验证 authentication ASP.NET WEB应用 1.身份验证概念     任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。     身份验证(auth

bn007的专栏 1万+

【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

本文介绍Trimble旗下Inpho UASMaster航空摄影测量软件,涵盖其核心功能模块(如Match-AT、OrthoMaster、Summit Evolution等)及安装教程。文章详细说明了从安装到汉化破解的全过程,并提供Inpho 8.0.1安装包下载链接与提取码,适用于无人机摄影测量专业用户。

智慧空间实验室 1万+

ASP.NET应用程序的安全方案(一)

1.身份验证概念 任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。 身份验证(authentication)是一个标识应用程序客户端的过程,这里的客户端可能包括终端用户、服务、进程或计算机,通过了身份验证的客户端被称为主体(principal)。身份验证可以跨越应用程序的多个层发生。终端用户起初由Web应用程序进行身份验证,通常根据用户名和

norey_cn的专栏 733

【第1章>第9节】基于FPGA的图像开运算处理算法的Verilog实现

本文介绍了基于FPGA的开运算图像处理实现方法。主要内容包括:1)输入图像二值化处理,通过阈值将灰度图像转换为二值图像;2)数据缓存与窗口提取,使用寄存器数组缓存5行图像数据并构建5×5处理窗口;3)腐蚀运算逻辑,判断窗口内是否全为白色像素;4)膨胀运算逻辑,检测窗口内是否存在白色像素。最后给出了Verilog实现方案,通过级联腐蚀和膨胀模块完成开运算处理。该方法可用于FPGA图像处理算法开发。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 315

fast-lio系列改进版本

2.回环检测的优化结果,更新到FAST-LIO2的当前帧位姿中,幷进行ikdtree的重构,进而更新submap。其它的效果还不清楚,实测lio部分稳定性很好。用fast-lio_slam就很稳定。融合了fast-lio2和sc-pgo,两部分分开运行,SC-PGO从FAST-LIO2节点获取里程计和激光雷达点云主题。的作者kim在FAST-LIO2的基础上,添加SC-PGO模块,通过加入ScanContext全局描述子,进行回环修正,SC-PGO模块与FAST-LIO2解耦,非常方便,很优秀的工作。

z1872385的博客 3189

如何在ASP.Net Core中强制执行SSL

安全套接字层(简称SSL)是一种标准的安全协议,用于加密Web服务器和Web浏览器之间的通信。 SSL很重要! 没有它,服务器和客户端之间交换的信息将以纯文本格式发送,因此任何能够捕获数据的黑客都可以读取。 SSL确保服务器和客户端之间发送的信息始终被加密。 即使捕获了您的敏感数据(用户名,密码,信用卡详细信息等),对于缺少在通信会话期间由服务器和客户端共享的SSL证书和加密密钥的任何人,...

cxu0262的博客 548

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[转]Reporting Services报表服务中的编程

本文原地址:怡红公子的blogs:http://blog.joycode.com/luke/articles/29892.aspx报表服务中的编程 Reporting Services 提供了良好的应用程序和管理工具,使得您无需编写一行代码就可以创建、查看和管理报表。您可以将 Reporting Services 作为一种现成的报表解决方案,方便地处理现有 SQL Server 数...

weixin_30858241的博客 135

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

从本地到上线:Python Web项目容器化部署全链路实践

在软件开发领域,环境一致性是保障应用在不同阶段(开发、测试、生产)行为一致的核心挑战。其原理在于通过标准化管理配置、依赖和运行时,解决因环境差异导致的“本地运行正常,线上部署失败”的经典问题。这一实践的技术价值在于提升软件交付的可靠性、可重复性和团队协作效率。在Web应用开发,特别是采用前后端分离架构(如Python Flask/Django后端配合Vue前端)的场景中,容器化技术(如Docker)成为实现环境一致性的关键技术。通过将应用及其依赖打包成标准镜像,并结合持续集成/持续部署(CI/CD)流水线,

weixin_33787529的博客 402

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 想要的生活
下一篇: 确保excel中数据为文本类型
eigo
博客等级 码龄22年 17粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值